Comment Spécifier la classe principale lors de l'utilisation de fatjar plugin gradle.construire
Je suis intéressée par la construction d'un seul jar contenant toutes les dépendances de modules externes et les pots dans un seul fichier jar exécutable qui je vais être en mesure d'exécuter avec java -jar myApp.jar
.
J'ai Un module qui dépend du module B.
Actuellement, je suis en utilisant gradle, et mon build.gradle
script ressemble à ceci:
apply plugin: 'fatjar'
description = "A_Project"
dependencies {
compile project(':B_Project')
compile "com.someExternalDependency::3.0"
}
Quand je le construire à travers gradle commande: clean build fatjar
un gros pot 'A.jar" est créé comme prévu.
Mais en l'exécutant avec comme je l'ai écrit ci-dessus se traduit par:
no main manifest attribute, in A.jar
Comment puis-je modifier mon build.gradle
de fichier et spécifiez la classe principale, ou le manifeste?
clean build fatjar
a différentes sorties. Est-ce vrai?Voir "Personnalisation du MANIFESTE.MF" dans le Gradle Guide de l'Utilisateur.
OriginalL'auteur Ella Nikolic | 2014-05-19
Vous devez vous connecter pour publier un commentaire.
J'ai pensé à moi-même:
J'ai utilisé uberjar Gradle tâche.
maintenant, mon construire.gradle fichier ressemble à ceci:
et maintenant, je-je l'utiliser avec la commande:
et il construit une belle runnable jar 🙂
with jar
ci-dessous manifeste pour obtenir les fichiers dansjava/main/resources
dans le uberjar. Aussi à l'intérieur de recueillir de l'est devrait être { il.isDirectory() ? c' : zipTree () } ...Pourquoi avez-vous indenter le code, donc de façon incohérente?
OriginalL'auteur Ella Nikolic
Pour qu'il fonctionne à l'aide de fatjar, j'ai ajouté un manifeste de l'article dans fatJar tâche:
OriginalL'auteur Damien