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"
}