Dans mon build.gradle, j'ai ajouté le plugin:
apply plugin: 'maven'
Puis, en utilisant “gradle install”, je peux copier le fichier jar résultant dans le référentiel maven: ~/.m2/repository
Cependant, mon référentiel Gradle réside dans ~/.gradle/caches/modules-2/files-2.1. Comment puis-je installer le fichier jar dans ce référentiel?
Ce qui a fonctionné pour moi, c'est gradle install -Dmaven.repo.local=the/path/of/the/folder
.
Je ne sais pas quel IDE vous utilisez, mais dans Eclipse, vous pouvez ajouter une nouvelle configuration d'exécution. Dans Gradle taks, ajoutez install
et dans les arguments du programme -Dmaven.repo.local=the/path/of/the/folder
.
Si vous insistez pour manipuler le cache, votre meilleur choix est d'écrire un script Shell qui remplacera manuellement le dernier fichier JAR dans le cache.
La raison en est que Gradle ne vient pas avec cette fonctionnalité intégrée, car Gradle utilise la notion de "cache local" au sens strict, par opposition au "référentiel local" utilisé par Maven.
La différence est que vous n'êtes jamais supposé enregistrer les fichiers dans le cache local manuellement.
Pour résoudre votre problème de la manière recommandée: supposons que le projet A soit une dépendance du projet B. Vous pouvez ensuite appeler la commande publishToMavenLocal
dans le projet A pour actualiser la dépendance. Ajoutez le référentiel mavenLocal()
dans le gradle.build
du projet B afin que chaque fois que vous générez le projet B, Gradle vérifie le référentiel local lors de la résolution de la dépendance A.
mavenLocal () est résolu comme ceci:
Pour utiliser un référentiel Maven local non standard, vous pouvez utiliser la configuration suivante dans votre build.gradle:
référentiels { maven { url '/Users/manuelj/Apache/maven/repository' } }
Un exemple build.gradle pour créer un fichier JAR avec ses dépendances de journal. en utilisant mavenlocale () apply plugin: 'Java'
appliquer le plugin: 'Eclipse'
version = '1.0'
sourceCompatibility = 1.7
compatibilité cible = 1.7
// crée un seul fichier Jar avec toutes les dépendances
tâche fatJar (type: Jar) {
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': version,
'Main-Class': 'com.mkyong.DateUtils'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it :
zipTree (le)
}
} avec pot }
// Obtenir les dépendances du référentiel central Maven
référentiels {
mavenCentral()
}
// Dépendances du projet
dépendances {
compile 'ch.qos.logback:logback-classic:1.1.2'
}
Référence crée un fichier Jar avec ses dépendances de journal.