如何在运行时更改 build.gradle 中的 mainClassName?
How can I change mainClassName in build.gradle during runtime?
我将 gradle 用于我在 java 中实现的多人游戏。
在项目中,我有两个 类 名为 Server 和 Client,我希望能够在 运行 时间内选择哪个给 运行。有什么办法可以通过在命令行中为 gradle 任务提供参数来做到这一点?例如,我想使用类似
./gradlew run -server
到 运行 Server.java 和 ./gradlew run -client
到 运行 Client.java.
现在我在build.gradle
中有这个:
plugins {
id 'java'
id 'application'
}
application {
mainClassName = 'server.Server'
mainModule = 'treasurehunt.main'
}
java {
modularity.inferModulePath = true
}
repositories {
mavenCentral()
}
这是我第一次使用gradle,如果您能详细解释一下,我将不胜感激。谢谢!
你不能; Main-Class
属性被“烘焙”到 jar 中。你可以做的是用 main
方法编写一个小型启动器 class,该方法读取命令行并调用 Server.main
或 Client.main
.
我将 gradle 用于我在 java 中实现的多人游戏。
在项目中,我有两个 类 名为 Server 和 Client,我希望能够在 运行 时间内选择哪个给 运行。有什么办法可以通过在命令行中为 gradle 任务提供参数来做到这一点?例如,我想使用类似
./gradlew run -server
到 运行 Server.java 和 ./gradlew run -client
到 运行 Client.java.
现在我在build.gradle
中有这个:
plugins {
id 'java'
id 'application'
}
application {
mainClassName = 'server.Server'
mainModule = 'treasurehunt.main'
}
java {
modularity.inferModulePath = true
}
repositories {
mavenCentral()
}
这是我第一次使用gradle,如果您能详细解释一下,我将不胜感激。谢谢!
你不能; Main-Class
属性被“烘焙”到 jar 中。你可以做的是用 main
方法编写一个小型启动器 class,该方法读取命令行并调用 Server.main
或 Client.main
.