Jak dodać lokalne.zależność pliku jar do zbudowania.akta gradle ' a?

Więc próbowałem dodać mój lokalny .zależność pliku jar od mojej kompilacji.plik gradle:

apply plugin: 'java'

sourceSets {
    main {
        java {
            srcDir 'src/model'
        }
    }
}

dependencies {
    runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')
} 

I widać, że dodałem .pliki jar do folderu referencedLibraries tutaj: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries

Ale problem polega na tym, że po uruchomieniu polecenia: gradle build w linii poleceń pojawia się następujący błąd:

error: package com.google.gson does not exist
import com.google.gson.Gson;

Oto mój cały repo: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1

Author: Q Liu, 2013-12-20

14 answers

Jeśli naprawdę musisz to wziąć .jar z lokalnego katalogu,

Dodaj obok swojego modułu gradle (Nie pliku app gradle):

repositories {
   flatDir {
       dirs 'libs'
   }
}


dependencies {
   compile name: 'gson-2.2.4'
}

Jednakże, będąc standardem .jar w repozytorium maven, może spróbujesz tego?

repositories {
   mavenCentral()
}
dependencies {
   compile 'com.google.code.gson:gson:2.2.4'
}
 354
Author: Jorge_B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 16:45:08

Zgodnie z dokumentacją , Użyj ścieżki względnej dla lokalnej zależności jar w następujący sposób:

dependencies {
    compile files('libs/something_local.jar')
}
 492
Author: leeor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-20 04:54:40

Możesz również zrobić to, co obejmowałoby wszystkie słoiki w lokalnym repozytorium. W ten sposób nie musiałbyś go określać za każdym razem.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
 256
Author: Nightwolf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-27 19:43:25

Dla mnie działa:

compile fileTree(dir: 'libs', include: '*.jar')

Zobacz dokumentację Gradle .

 29
Author: Misha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 19:06:11

Przyjęta odpowiedź jest dobra, jednak potrzebowałbym różnych konfiguracji bibliotek w moim wieloprojektowym Gradle build, aby korzystać z tej samej biblioteki Java innej firmy.

Dodanie ' $rootProject.projectDir' do 'dir' elementu ścieżki w moim ' allprojects ' zamknięcie oznaczało, że każdy pod-projekt odnosił się do tego samego katalogu ' libs' oraz Nie Wersja lokalna do tego podprojektu:

//gradle.build snippet
allprojects {
    ...

    repositories {
        //All sub-projects will now refer to the same 'libs' directory
        flatDir {
            dirs "$rootProject.projectDir/libs"
        }
        mavenCentral()
    }

    ...
}

EDIT by Quizzie: changed "${rootProject.projectDir} " to " $rootProject.projectDir "(działa w najnowszej wersji Gradle).

 24
Author: Big Rich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-27 07:12:58

Możesz spróbować ponownie użyć lokalnego repozytorium Maven dla Gradle:

  • Zainstaluj jar w lokalnym repozytorium Maven:

    mvn install:install-file -Dfile=utility.jar -DgroupId=com.company -DartifactId=utility -Dversion=0.0.1 -Dpackaging=jar

  • Sprawdź, czy masz zainstalowany jar w swoim ~/.m2/ lokalnym repozytorium Maven

  • Włącz lokalne repozytorium Maven w pliku build.gradle:

    repositories {
      mavenCentral()  
      mavenLocal()  
    }
    
    dependencies {  
      compile ("com.company:utility:0.0.1")  
    }
    
    • Teraz powinieneś mieć włączony jar do kompilacji w swoim projekcie
 23
Author: Daniel Mora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-02 22:55:25

Prostym sposobem na to jest

compile fileTree(include: ['*.jar'], dir: 'libs')

Skompiluje wszystkie .pliki jar w katalogu libs w aplikacji.

 12
Author: ZygoteInit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-18 09:10:47

Nie mogłem uzyskać powyższej sugestii na https://stackoverflow.com/a/20956456/1019307 do pracy. Ale to mi pomogło. Dla pliku secondstring-20030401.jar, który przechowuję w katalogu libs/ w katalogu głównym projektu:

repositories {
    mavenCentral()
    // Not everything is available in a Maven/Gradle repository.  Use a local 'libs/' directory for these.
    flatDir {
       dirs 'libs'
   }
}

...

compile name: 'secondstring-20030401'
 7
Author: HankCa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:48

Najlepszym sposobem, aby to zrobić, jest dodanie tego do swojej kompilacji.gradle plik i naciśnij opcję synchronizacji

dependency{
    compile files('path.jar')
}
 5
Author: saunlogan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 08:04:43

Na to pytanie udzielono już szczegółowych odpowiedzi. Nadal chcę dodać coś, co wydaje mi się bardzo zaskakujące:

Zadanie "gradle dependencies" nie wyświetla żadnych zależności od Pliku. Nawet jeśli możesz tak myśleć, ponieważ zostały one określone w bloku" zależności " po wszystkim..

Więc nie polegaj na wyniku tego, aby sprawdzić, czy odwołane lokalne pliki lib działają poprawnie.

 4
Author: icyerasor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-30 16:07:37

Rozwiązaniem, które zadziałało dla mnie jest użycie fileTree w build.plik gradle. Zatrzymaj .jar, który należy dodać jako zależność w folderze libs. Podaj poniższy kod w bloku dependenices w build."gradle": {]}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
 4
Author: Jince Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-24 05:21:14

Pobierz plik - > struktura projektu -> Moduły -> aplikacja -> Zakładka zależności -> kliknij na +(przycisk) - > Wybierz plik zależności - > Wybierz plik jar w folderze lib

Ten krok automatycznie doda Twoją zależność do gralde

Bardzo Proste

 1
Author: Jaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-17 07:19:03

Inny sposób:

Dodaj bibliotekę w widoku drzewa. Kliknij prawym przyciskiem myszy na ten. Wybierz menu "Dodaj jako bibliotekę". Pojawi się okno dialogowe, które pozwala wybrać moduł. OK i gotowe.

 -1
Author: YannXplorer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-16 11:13:13

Bądź ostrożny, jeśli używasz ciągłej integracji, musisz dodać swoje biblioteki w tej samej ścieżce na swoim serwerze kompilacji.

Z tego powodu wolałbym dodać jar do lokalnego repozytorium i oczywiście zrobić to samo na serwerze build.

 -1
Author: Akostha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-17 11:17:54