39 votes

Créer un fichier JAR exécutable Groovy avec Gradle

Ceci est mon script de construction 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 ça compile bien

Le problème est que je ne peux pas exécuter le fichier JAR créé, je reçois une exception java.lang.NoClassDefFoundError: groovy/lang/GroovyObject

Donc, je suppose que le plugin groovy n'inclut pas toutes les classes nécessaires dans le fichier JAR.

Comment créer un fichier JAR autonome que je peux simplement .. exécuter ;-)

48voto

Benjamin Muschko Points 7642

Ce que vous recherchez, c'est le plug-in d'application qui vous permet de créer une application JVM autonome, y compris toutes les dépendances, et d'exécuter des scripts.

 apply plugin:'application'
mainClassName = 'test.tree.App'
 

MODIFIER:

Cela devrait créer le uberjar que vous voulez:

 task uberjar(type: Jar) {
    from files(sourceSets.main.output.classesDir)
    from configurations.runtime.asFileTree.files.collect { zipTree(it) }

    manifest {
        attributes 'Main-Class': 'test.tree.App'
    }
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X