我有一个从Maven命令行运行的程序。该程序有两个参数,1)使用的属性文件的名称和2)要运行的测试的名称。
这是我的POM中的exec插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<mainClass>com.sensus.test.chefdeploytest.TestRunner</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
我的主要方法:
public class TestRunner {
final static Logger logger = Logger.getLogger(TestRunner.class);
public static void main(String[] args) throws FileNotFoundException {
if (args.length != 1){
logger.error("Need the location of the properties file");
System.exit(0);
}
ExternalProperties.setLocation(args[0]);
String testName = args[1];
JUnitCore core;
Result result = null;
if (testName.equals("Layer0")) {
core = new JUnitCore();
result = core.run(Layer0TestRunner.class);
}
以下是我在命令行中输入的内容:
mvn package -Dexec.args="test.properties Layer0"
问题:
当我这样做时,Layer0
的第二个参数不被认为是第二个参数。相反,test.properties Layer0
被视为一个参数。我错过了什么让这看作是两个论点?
答案 0 :(得分:0)
男孩不觉得我觉得愚蠢,我忽略了这一点:
if (args.length != 1)
难怪它没有认识到它们。