tutorial example application java gradle execution

java - example - gradle project



Gradle para ejecutar la clase Java(sin modificar build.gradle) (3)

Hay un plugin de Eclipse simple para ejecutar Gradle, que solo usa la línea de comando para lanzar gradle.

Qué es el análogo de Gradle para maven compilar y ejecutar mvn compile exec:java -Dexec.mainClass=example.Example

De esta forma, cualquier proyecto con gradle.build podría ejecutarse.

ACTUALIZACIÓN: Hubo una pregunta similar. ¿ Cuál es el equivalente de Gradle del complemento ejecutivo de maven para ejecutar aplicaciones Java? preguntado antes, pero la solución sugirió alterar cada proyecto build.gradle

package runclass; public class RunClass { public static void main(String[] args) { System.out.println("app is running!"); } }

Luego ejecutando gradle run -DmainClass=runclass.RunClass

:run FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task '':run''. > No main class specified


Al expandir la respuesta de First Zero, supongo que quieres algo donde también puedas ejecutar gradle build sin errores.

Tanto gradle build como gradle -PmainClass=foo runApp funcionan con esto:

task runApp(type:JavaExec) { classpath = sourceSets.main.runtimeClasspath main = project.hasProperty("mainClass") ? project.getProperty("mainClass") : "package.MyDefaultMain" }

donde configuras tu clase principal predeterminada.


Solo necesita usar el plugin de la aplicación Gradle :

apply plugin:''application'' mainClassName = "org.gradle.sample.Main"

Y luego simplemente gradle run .

Como señala Teresa, también puede configurar mainClassName como una propiedad del sistema y ejecutarlo con un argumento de línea de comando.


Use JavaExec . Como ejemplo, ponga lo siguiente en build.gradle

task execute(type:JavaExec) { main = mainClass classpath = sourceSets.main.runtimeClasspath }

Para ejecutar gradle -PmainClass=Boo execute . Usted obtiene

$ gradle -PmainClass=Boo execute :compileJava :compileGroovy UP-TO-DATE :processResources UP-TO-DATE :classes :execute I am BOO!

mainClass es una propiedad pasada dinámicamente en la línea de comando. classpath está configurado para recoger las últimas clases.

Si no pasa la propiedad mainClass , esto falla como se esperaba.

$ gradle execute FAILURE: Build failed with an exception. * Where: Build file ''xxxx/build.gradle'' line: 4 * What went wrong: A problem occurred evaluating root project ''Foo''. > Could not find property ''mainClass'' on task '':execute''.

ACTUALIZADO de los comentarios:

No hay mvn exec:java equivalent en gradle, necesita aplicar el plugin de la aplicación o tener una tarea JavaExec.