web-dev-qa-db-fra.com

Comment installer un fichier jar compilé par Gradle dans les fichiers 2.1 du référentiel Gradle local au lieu du référentiel Maven?

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?

10
Alex

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.

5
ddarellis

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.

1
Danio

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

0
Wembo Mulumba

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.

0
Wembo Mulumba