使用gradle“run”任务运行main方法
我想通过gradle任务运行我的main
方法
这是我通过cmd运行的方式:
java -cp RTMonitor.jar com.bla.MainRunner first_arg
应该如何用gradle写?
run { args += ['java -cp RTMonitor.jar com.bla.MainRunner first_arg'] }
更新
我努力了
task myRun(type: JavaExec) { classpath configurations.main main = "com.bla.runners.StatsLogGenerator" args "arg1", "arg2" }
我得到了:
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" }
我收到一个错误:
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)
但是当我通过Intellij运行时,每个thig工作正常
最简单的可能就是使用应用程序插件。 将apply plugin: 'application'
添加到build.gradle并设置mainClassName = com.bla.MainRunner
。 要向主类添加参数,请修改运行任务并编辑args属性
run { args += 'first_arg' }
Classpath是从主sourceSet自动获取的,如果你想要不同的,你可以编辑run task的classpath属性。
如果需要更多自定义,可以像这样定义自己的JavaExec类型的任务
task myRun(type: JavaExec) { classpath sourceSets.main.runtimeClasspath main = "com.bla.MainRunner" args "arg1", "arg2" }
- 如何在build.gradle文件中添加OJDBC6.jar?
- 如何为Gradle Java插件设置compileOptions?
- 如何以os独立方式设置Gradle`options.bootClasspath`?
- 错误:java.lang.ClassNotFoundException:未找到类org.openjdk.jdi.ReferenceType
- 使用`Runtime.getRuntime()。exec`从Java启动的进程无法访问文件系统位置
- 为什么InetAddress.getLocalHost()。getHostName()返回与bash“hostname”不同的值?
- Gradle和JaCoCo:来自单独子项目的仪器类
- 使用spock junit测试和gradle构建系统在控制台上输出unit testing结果
- 如何重用gradle-wrapper?