812 Stimmen

Wie füge ich eine lokale .jar-Dateiabhängigkeit zur build.gradle-Datei hinzu?

Ich habe versucht, meine lokale .jar-Datei-Abhängigkeit zu meiner build.gradle-Datei hinzuzufügen:

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')
} 

Und Sie können sehen, dass ich die .jar-Dateien hier in den referencedLibraries-Ordner hinzugefügt habe: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries

Aber das Problem ist, dass ich beim Ausführen des Befehls: gradle build in der Kommandozeile den folgenden Fehler erhalte:

Fehler: Paket com.google.gson existiert nicht
import com.google.gson.Gson;

Hier ist mein gesamtes Repo: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1

973voto

leeor Punkte 15804

Gemäß der Dokumentation verwenden Sie einen relativen Pfad für eine lokale Jar-Abhängigkeit wie folgt.

Groovy-Syntax:

dependencies {
    implementation files('libs/something_local.jar')
}

Kotlin-Syntax:

dependencies {
    implementation(files("libs/something_local.jar"))
}

559voto

Jorge_B Punkte 9502

Wenn Sie wirklich dieses .jar aus einem lokalen Verzeichnis nehmen müssen,

Fügen Sie neben Ihrem Modul gradle hinzu (nicht der App-gradle-Datei):

repositories {
   flatDir {
       dirs("libs")
   }
}

dependencies {
   implementation("gson-2.2.4")
}

Wenn es sich jedoch um ein Standard-.jar in einem tatsächlichen Maven-Repository handelt, warum versuchen Sie das nicht?

repositories {
   mavenCentral()
}
dependencies {
   implementation("com.google.code.gson:gson:2.2.4")
}

365voto

Nightwolf Punkte 4239

Sie könnten auch dies tun, was alle JARs im lokalen Repository einschließen würde. Auf diese Weise müssten Sie es nicht jedes Mal angeben.

Abhängigkeiten {
    kompilieren fileTree(dir: 'libs', include: ['*.jar'])
}

61voto

Misha Punkte 793

Das folgende funktioniert für mich:

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

Verweisen Sie auf die Gradle-Dokumentation.

50voto

Daniel Mora Punkte 2559

Sie können versuchen, Ihr lokales Maven-Repository für Gradle wiederzuverwenden:

  • Installieren Sie das Jar in Ihr lokales Maven-Repository:

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

  • Überprüfen Sie, ob das Jar in Ihrem lokalen Maven-Repository ~/.m2/ installiert ist

  • Aktivieren Sie Ihr lokales Maven-Repository in Ihrer Datei build.gradle:

    repositories {
      mavenCentral()  
      mavenLocal()  
    }
    
    dependencies {  
      implementation ("com.company:utility:0.0.1")  
    }
    • Jetzt sollte das Jar für die Implementierung in Ihrem Projekt aktiviert sein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X