Créer un Groovy exécutable JAR avec Gradle
C'est mon script de build gradle.
apply plugin: 'groovy'
project.group = "test.tree"
archivesBaseName = "tree"
project.version = "1.0"
manifest.mainAttributes("Main-Class" : "test.tree.App")
sourceCompatibility=1.6
targetCompatibility=1.6
repositories {
mavenCentral()
}
dependencies {
groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'
testCompile group: 'junit', name: 'junit', version: '4.8.2'
}
Et cette compile juste fine
Le problème est que je ne peux pas courir à la création de la JARRE, j'obtiens une exception
java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
Donc je suppose que le groovy plugin n'inclut pas toutes les classes nécessaires à l'intérieur du BOCAL.
Comment puis-je créer un stand-alone POT que je peux tout simplement .. fonctionner 😉
- Après avoir lu tous les conseils de là, et aussi à l'aide de github.com/AvatarQing/groovy-executable-jar-with-gradle-example, j'ai créé un fichier jar qui prend un script groovy et crée l'exécutable jar: github.com/krishnact/uberifier. Le fichier jar est: github.com/krishnact/uberifier/blob/master/bin/...
Vous devez vous connecter pour publier un commentaire.
Ce que vous cherchez est la plugin d'application qui vous permet de construire une application autonome de la JVM de l'application, y compris toutes les dépendances et d'exécuter des scripts.
EDIT:
Cela devrait créer les uberjar vous voulez:
distZip
tâche, mais ce que je veux, c'est smt commedistJar
tâche -> une équipe qui crée un fichier exécutable JAR avec toutes les classes (de la mine, groovy, rt ... ) à l'intérieur.dependsOn: compileGroovy
pouruberjar
tâche, et tout devrait fonctionner, comme c'est de travailler pour moi.Je voudrais jeter un vote pour le l'ombre plugin gradle. Il est capable de construire des uber pots et est très polyvalent et capable de choses comme la classe, la réinstallation afin de prévenir la dépendance de l'enfer.
Je ne vais pas comparer les deux plugins, mais je vais aller aussi loin que de dire que j'ai évolué vers l'utilisation de l'ombre de l'avoir utilisé l'application dans le passé en raison de l'ajout de fonctionnalités.
Quand je suis fatigué de le temps de démarrage de @Emparer de base de scripts groovy, j'ai tendance à écrire un fichier de build gradle à l'aide de l'ombre plugin, même pour un seul fichier groovy scripts. Un exemple de fichier de build gradle capable de construire un uber pot de groovy fichier de script dans le répertoire courant. Le principal nom de la classe doit correspondre au nom du fichier de script:
l'uber pot sera généré dans le
build/libs
répertoire.le code suivant est également ok,l'utilisation de ressort de démarrage plugin
J'ai eu le même problème, après l'ajout de bocal de bloc de construction.gradle, alors il fonctionne.