簡體   English   中英

使用gradle“run”任務運行main方法

[英]run main method using gradle “run” task

我想通過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"
}
task run(type: JavaExec) {
  group = 'Run' // <-- change the name as per your need
  description = 'Small description what this run will do'

  classpath sourceSets.main.runtimeClasspath // <-- Don't change this
  main = "com.mypackage.myclassNameContaingMainMethod"
  args "arg1", "arg2"
}

這是一個獨立的注冊任務,也可以具有組和描述以及任務的其他屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM