我有两个 Java 类在本地系统上运行命令。我的开发系统是 Mac,我的 QA 系统是 Windows,Prod 系统是 UNIX。因此,每个命令都有不同的命令,目前我必须进入并注释/取消注释差异。这两个类的结构与可执行文件和命令相同。这就是我所拥有的。
// Linux (QA/Prod)
final String executable = "/user1/Project/Manufacturer/CommandCLI";
// final String executable = "cat"; // Mac Dev
// final String executable = "cmd"; // Windows QA
final String command = "getarray model=" + model + " serialnum=" + serialnum;
// Windows QA(local laptop)
//final String command = "/C c:/Manufacturer/CommandCLI.bat getarray model=" + model + " serialnum=" + serialnum;
//Mac Dev
// final String command = "/TestData/" + computer.getId() + ".xml"
因此,如您所见——我根据环境进行评论和取消评论。我主要担心的一个问题是我依赖于模型和序列号变量——我不知道它是否可以以某种方式插入到属性中(模型和序列号在方法调用中给出)。
我们正在使用 Maven,因此在“mvn clean package”期间,我们添加了 -P 标志来指定属性文件。
处理这个问题的优雅方法是什么?