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

2022-09-03 00:27:49

我正在使用 gradle 'application' 插件来启动我的应用程序。这很有效。现在我想添加在同一项目中启动不同主类的选项。我可以更改插件的配置以允许这样做吗?

apply plugin: 'application'

mainClassName = "net.worcade.my.MainClass"

答案 1

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

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

  • runSimple 可以随心所欲地命名
  • 根据需要设置主要
  • 清除 args 和 system 如果不需要,则清除属性

要运行:

gradle runSimple

您可以将任意数量的这些放入 build.gradle 文件中。


答案 2

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

application {
    mainClassName = project.findProperty("chooseMain").toString()
}

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

./gradlew run -PchooseMain=net.worcade.my.MainClass

推荐