java - tutorial - gradle vs maven




Comment ajouter la dépendance du fichier.jar local au fichier build.gradle? (10)

Aller à Fichier -> Structure du projet -> Modules -> app -> Onglet Dépendances -> Cliquer sur + (bouton) -> Sélectionner la dépendance du fichier -> Sélectionner le fichier jar dans le dossier lib

Cette étape ajoutera automatiquement votre dépendance à Gralde

Très simple

J'ai donc essayé d'ajouter ma dépendance de fichier .jar locale à mon fichier build.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')
} 

Et vous pouvez voir que j'ai ajouté les fichiers .jar dans le dossier referencedLibraries ici: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries

Mais le problème est que lorsque j'exécute la commande: gradle build sur la ligne de commande, j'obtiens l'erreur suivante:

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

Voici mon repo entier: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1


Autrement:

Ajouter une bibliothèque dans l'arborescence. Faites un clic droit sur celui-ci. Sélectionnez le menu "Ajouter comme bibliothèque". Une boîte de dialogue apparaît, vous permet de sélectionner le module. OK et c'est fait.


La meilleure façon de le faire est d'ajouter ceci dans votre fichier build.gradle et de cliquer sur l'option sync

dependency{
    compile files('path.jar')
}

La question a déjà reçu une réponse détaillée. Je veux toujours ajouter quelque chose qui me semble très surprenant:

La tâche "Gradle dependencies" ne répertorie aucune dépendance de fichier. Même si vous le pensez, car ils ont été spécifiés dans le bloc "dépendances" après tout.

Donc, ne comptez pas sur la sortie de ceci pour vérifier si vos fichiers lib locaux référencés fonctionnent correctement.


La solution qui a fonctionné pour moi est l'utilisation de fileTree dans le fichier build.gradle. Conservez le fichier .jar qui doit être ajouté en tant que dépendance dans le dossier libs. Donnez le code ci-dessous dans le bloc dependenices dans build.gradle:

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

Les travaux suivants pour moi:

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

Reportez-vous à la documentation Gradle .


Si vous avez vraiment besoin de prendre ce fichier .jar à partir d'un répertoire local,

Ajouter à côté de votre module gradle (pas le fichier gradle de l'application):

repositories {
   flatDir {
       dirs 'libs'
   }
}


dependencies {
   compile name: 'gson-2.2.4'
}

Cependant, étant un .jar standard dans un référentiel maven réel, pourquoi ne pas essayer cela?

repositories {
   mavenCentral()
}
dependencies {
   compile 'com.google.code.gson:gson:2.2.4'
}

Soyez prudent si vous utilisez une intégration continue, vous devez ajouter vos bibliothèques dans le même chemin sur votre serveur de construction.

Pour cette raison, je préfère ajouter jar au dépôt local et, bien sûr, faire la même chose sur le serveur de construction.


Vous pourriez également faire ceci qui inclurait tous les fichiers JAR dans le référentiel local. De cette façon, vous n'auriez pas à le spécifier à chaque fois.

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

Vous pouvez essayer de réutiliser votre dépôt Maven local pour Gradle:

  • Installez le fichier jar dans votre référentiel Maven local:

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

  • Vérifiez que le ~/.m2/ jar est installé dans votre référentiel Maven ~/.m2/ local

  • Activez votre référentiel Maven local dans votre fichier build.gradle :

    repositories {
      mavenCentral()  
      mavenLocal()  
    }
    
    dependencies {  
      compile ("com.company:utility:0.0.1")  
    }
    
    • Vous devriez maintenant avoir le jar activé pour la compilation dans votre projet






gradle-eclipse