我们是高中机器人团队的学生。我们需要构建一个机器人,然后构建同一个机器人的另一个"副本"(所以我们有两个相同的机器人(。但是,机器人之间存在一些差异。例如,他们的车轮的摩擦系数有点不同。
我们有一个 Java 类保存第一个机器人的常量,另一个类保存第二个机器人的常量。两个机器人的所有其他代码都是相同的。 我们有一个布尔标志,指示我们现在要使用的常量集(对于第一个机器人或第二个机器人(。目前,每次我们要将代码部署到其中一个机器人时,我们都需要在代码中手动更改此标志。
我们用 Java 12 编写代码,并使用 Gradle 5.1.1 构建它。有没有办法将命令行参数与 Gradle 一起使用来更改有问题的标志? 假设在代码中的某个地方我们有这个标志,名为isFirstRobotUsed
:
public static final boolean isFirstRobotUsed = true;
有没有这样的代码构建选项:.gradlew build first
或.gradlew build second
,这将更改代码内部的isFirstRobotUsed
?
多谢!
您的主要函数:
public static void main(String[] args) {
System.out.println(args);
boolean firstRobotUsed = Boolean.valueOf(args[0]);
...
}
Your build.gradle
run {
if ( project.hasProperty("isFirstRobotUsed") ) {
args Eval.me(isFirstRobotUsed)
}
}
命令行提示符:
gradle run -PisFirstRobotUsed="['true']"
或者,使用 -D JVM 系统参数(如以下链接:https://www.lesscoder.com/java/how-to-pass-arguments-to-gradle-run/(,您可以使用 System.getProperty(( 读取系统属性。