Comment puis-je faire en sorte que la tâche de construction de gradle génère le jarre fantôme _instead_ du bocal «normal»?

(ceci utilise le grade 2.4)

Pour l’un de mes projets, scindé en plusieurs sous-modules, j’utilise le plugin shadow qui convient très bien à mes besoins; il a un main, et comme recommandé par le fichier README du plugin, j’utilise le plugin d’application en conjonction avec lui pour que la classe Main soit générée dans le manifeste, tout fonctionne bien.

Maintenant, il s’agit d’un projet de plug-in SonarQube, et j’utilise également (avec succès!) Le plugin Gradle Sonar Packagin . Et ce plugin fait, quand vous ./gradlew build , générer le plugin sonar au lieu du jar “normal”.

Je souhaite faire la même chose pour mon sous-projet ici, sauf que je veux qu’il ne génère que le plug-in shadow jar au lieu du plug-in “normal” … Pour l’instant, je génère les deux à l’aide de ce simple fichier

 buildscript { repositories { jcenter(); } dependencies { classpath(group: "com.github.jengelman.gradle.plugins", name:"shadow", version:"1.2.1"); } } apply(plugin: "application"); apply(plugin: "com.github.johnrengelman.shadow"); dependencies { // whatever } mainClassName = //whatever artifacts { shadowJar; } // Here is the hack... build.dependsOn(shadowJar); 

Comment modifier ce fichier afin que seul le fichier jar shadow soit généré et non le fichier jar normal?

Vous pouvez désactiver la tâche jar en ajoutant les lignes suivantes à votre script Gradle:

 // Disable the 'jar' task jar.enabled = false 

Ainsi, lors de l’exécution du script Gradle, il indiquera

: pot SAUTÉ

Si vous souhaitez configurer tous les sous-projets, vous pouvez append les éléments suivants dans votre build.gradle racine

 subprojects { // Disable the 'jar' task tasks.jar.enabled = false }