将2个参数传递给Maven Exec插件 - 仅识别为1个参数

时间:2014-10-14 17:01:36

标签: java maven arguments

我有一个从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被视为一个参数。我错过了什么让这看作是两个论点?

1 个答案:

答案 0 :(得分:0)

男孩不觉得我觉得愚蠢,我忽略了这一点:

if (args.length != 1)

难怪它没有认识到它们。