具有多个主类的Gradle应用程序插件

Jor*_*orn 4 java gradle

我正在使用gradle“应用程序”插件启动我的应用程序。这很好。现在,我想添加选项以在同一项目中启动另一个主类。我可以更改插件的配置以允许吗?

apply plugin: 'application'

mainClassName = "net.worcade.my.MainClass"
Run Code Online (Sandbox Code Playgroud)

Jos*_*son 10

来自http://mrhaki.blogspot.com/2010/09/gradle-goodness-run-java-application.html

apply plugin: 'java'

task(runSimple, dependsOn: 'classes', type: JavaExec) {
   main = 'com.mrhaki.java.Simple'
   classpath = sourceSets.main.runtimeClasspath
   args 'mrhaki'
   systemProperty 'simple.message', 'Hello '
}
Run Code Online (Sandbox Code Playgroud)

显然,您可以更改以下内容:

  • 您可以根据需要命名runSimple
  • 适当设置main
  • 如果不需要,请清除args和systemProperty

跑步:

gradle runSimple
Run Code Online (Sandbox Code Playgroud)

您可以根据需要将任意数量的文件放入build.gradle文件中。


Gua*_*oBE 9

您可以直接使用属性配置应用程序插件:

application {
    mainClassName = project.findProperty("chooseMain").toString()
}
Run Code Online (Sandbox Code Playgroud)

在命令行中,您可以传递主类的名称:

./gradlew run -PchooseMain=net.worcade.my.MainClass
Run Code Online (Sandbox Code Playgroud)