2010-06-17 6 views
7

J'essaie de faire une tâche pour exécuter mon fichier Jar dans gradle.tâche de runJar gradle?

Je suis venu avec ce qui suit:

task runJar(dependsOn:[jar]){ 
    ant.java(jar:,fork:true) 
} 

Cependant, je suis incapable de trouver le chemin vers le fichier jar. Toute aide très appréciée. Je vous remercie!

Misha

EDIT: OK c'est assez bizarre. Cette tâche s'exécute avant la compilation, etc ???

EDIT: fixe. La clé est dans une notation doLast {}, ou, en abrégé

task runJar(dependsOn:"jar")<<{ 
    ant.java(jar:"${libsDir}${File.separator}${archivesBaseName}.jar",fork:true) 
} 

Misha

Répondre

1

Ma meilleure solution à ce jour:

task runJar(dependsOn:[jar]){ 
    ant.java(jar:"${libsDir}${File.separator}${archivesBaseName}.jar",fork:true) 
} 

Merci!

Misha

+1

Salut! J'ai essayé votre solution, mais je n'ai aucune sortie du pot - je reçois seulement une information Java Result: 1, bien que je l'ai écrite sur 'System.out' dans ma méthode' main' ... Comment obtenir le résultat? – emesx

+0

Je dois fournir ** args **. –

2

Vous devriez être en mesure d'utiliser la variable jar.archivePath;

task runJar(dependsOn:[jar]){ 
    ant.java(jar: jar.archivePath ,fork:true) 
} 
+0

Comment puis-je fournir ** args ** ici? –

+1

Exemple ici: http://stackoverflow.com/questions/10033853/how-to-pass-arguments-to-ant-java-method-in-groovy – TheKaptain

9

La réponse de Koppor fonctionne parfaitement.

Avec un Main.java dans src/main/java, mon fichier build.gradle ressemble

apply plugin: 'java' 
apply plugin: 'application' 

mainClassName = "Main" 

Courir donne:

gradle run     

:compileJava 
:processResources UP-TO-DATE 
:classes 
:run 
[Main.java's output] 
Questions connexes