当前位置: 首页 > 面试题库 >

使用gradle“运行”任务运行主要方法

竺捷
2023-03-14
问题内容

我想main通过gradle任务运行我的方法

这是我通过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'
}

类路径是从主sourceSet中自动获取的,如果需要其他类,则可以编辑运行任务的类路径属性。

如果需要更多自定义,则可以这样定义JavaExec类型的任务:

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


 类似资料:
  • 是否可以在gradle.properties文件中定义test.maxParallelForks=runtime.runtime.availableProcessors(),而不是在test任务下的每个build.gradle文件中定义它?

  • 我在跑Pop_OS!20.10 [✓] Flutter(Channel stable,1.22.3,Linux,locale en_US.UTF-8)•Flutter版本1.22.3 at/home/samdc/DevTools/Flutter•框架版本8874f21(3个月前),2020-10-29 14:14:35-0700•引擎版本a1440ca392•Dart版本2.10.3•Pub下载镜

  • 我尝试用JavaExec类型创建gradle任务。在gradle文档中,我发现我不需要使用java插件。但是这个插件与android插件不兼容。如果我没有应用java插件,我会收到以下错误: 错误:无法找到或加载主类包。TestM 我的任务示例: 如果使用相同的任务创建java库模块,则会收到相同的错误: 错误:无法找到或加载主类 也许我需要设置类路径变量?如何在Android Studio中获取

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业

  • 我在build.gradle中创建了一个新的gradle任务: 哪个应该运行rerun.sh: 我使用IntelliJ作为IDE。如何运行此任务? 我尝试在zshell控制台中运行并收到此错误: gradle调用CL zsh:找不到命令:gradle 但是在 IDE 中,我一直使用 gradle,因此必须安装它。 我怎么才能解决这个问题?我的写作还好吗?

  • 我的gradle项目中有一个java主程序,我可以通过命令行使用gradle应用程序插件运行任务--args param new从gradle 4.9开始运行,如下所示: 我想在IntelliJ IDEA CE 2018.1中为同样的配置创建一个运行配置。 我在Run/Debug配置dilog中将任务字段指定为 当我运行这个运行配置时,我得到一个错误: 如何通过运行配置使此工作?