type tutorial application java gradle main

java - tutorial - Ejecutar el método principal usando la tarea "ejecutar" de Gradle



gradle java tutorial (1)

Quiero ejecutar mi método main través de la tarea gradle

Así es como corro a través del cmd:

java -cp RTMonitor.jar com.bla.MainRunner first_arg

¿Cómo se debe escribir en gradle?

run { args += [''java -cp RTMonitor.jar com.bla.MainRunner first_arg''] }

Actualizar

Yo he tratado

task myRun(type: JavaExec) { classpath configurations.main main = "com.bla.runners.StatsLogGenerator" args "arg1", "arg2" }

y me dieron

Error:(71, 0) Could not find property ''main'' on configuration container.

the I have tried: task myRun(type: JavaExec) { classpath "configurations.main" main = "com.bla.runners.StatsLogGenerator" args "arg1", "arg2" }

y tengo un error:

FAILURE: Build failed with an exception. 17:49:21.855 [ERROR] [org.gradle.BuildExceptionReporter] 17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task '':myRun''. 17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] > Process ''command ''/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'''' finished with non-zero exit value 1 17:49:21.864 [ERROR] [org.gradle.BuildExceptionReporter] 17:49:21.865 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is: 17:49:21.866 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task '':myRun''. 17:49:21.867 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:361) 17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:31)

pero cuando corro a través de Intellij, todo funciona bien


Lo más fácil es probablemente usar el complemento de la aplicación. Agregue el apply plugin: ''application'' a su build.gradle y establezca mainClassName = com.bla.MainRunner . Para agregar argumentos a su clase principal modifique la tarea de ejecución y edite la propiedad args

run { args += ''first_arg'' }

Classpath se toma automáticamente de sourceSet principal. Si desea una diferente, puede editar la propiedad classpath de la tarea de ejecución.

Si necesita más personalización, puede definir su propia tarea de tipo JavaExec como esta

task myRun(type: JavaExec) { classpath sourceSets.main.runtimeClasspath main = "com.bla.MainRunner" args "arg1", "arg2" }