2010-06-17 19 views
7

Estoy tratando de hacer una tarea para ejecutar mi archivo jar en gradle.gradle runJar tarea?

he llegado con lo siguiente:

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

Sin embargo, no puedo encontrar la ruta de acceso al archivo JAR. Cualquier ayuda muy apreciada. ¡Gracias!

Misha

EDIT: OK esto es bastante extraño. Esta tarea ejecuta antes de compilar, etc. ???

EDIT: reparado. La clave está en una notación {} doLast, o, en forma abreviada

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

Misha

Respuesta

1

Mi mejor solución hasta el momento:

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

Gracias!

Misha

+1

Hola! He intentado con su solución, pero no tengo ningún resultado del archivo jar. Solo obtengo un resultado de Java: 1 información, aunque he escrito wrtitten en 'System.out' en mi método' main' ... ¿Cómo puedo obtenerlo? ¿La salida? – emesx

+0

Necesito proporcionar ** args **. –

2

Usted debe ser capaz de utilizar la variable jar.archivePath;

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

¿Cómo proporciono ** args ** aquí? –

+1

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

9

La respuesta de Koppor funciona a la perfección.

Con un Main.java en src/main/java, mi archivo build.gradle parece

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

mainClassName = "Main" 

Correr da:

gradle run     

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