J'ai un projet simple dans Gradle 4.6 et j'aimerais en faire un pot exécutable. J'ai essayé shadow
, gradle-fatjar-plugin
, gradle-one-jar
, spring-boot-gradle-plugin
_ plugins mais aucun d’eux n’ajoute mes dépendances déclarées comme implementation
(je n’en ai aucune compile
.) Cela fonctionne avec compile
par exemple. pour gradle-one-jar
_ plugin mais je voudrais avoir implementation
dépendances.
Merci beaucoup!
Vous pouvez utiliser le code suivant.
jar {
manifest {
attributes(
'Main-Class': 'com.package.YourClass'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Assurez-vous de remplacer com.package.YourClass
Par le nom de classe complet contenant static void main( String args[] )
.
Cela emballera les dépendances d'exécution. Vérifiez le docs si vous avez besoin de plus d’informations.
La même tâche peut être accomplie en utilisant Gradle Kotlin DSL de la même manière:
val jar by tasks.getting(Jar::class) {
manifest {
attributes["Main-Class"] = "com.package.YourClass"
}
from(configurations.runtime.map { if (it.isDirectory) it else zipTree(it) })
}