如何设置环境变量以使maven正确运行测试?

13

是否可以在pom.xml中设置环境变量,以供junit测试使用?Netbeans可以获取环境变量并正确构建项目。但是当我使用命令行(mvn clean -> mvn install)时,由于测试错误而构建失败。

谢谢。

1个回答

21

我知道有两种方法。

命令行:

您可以像以下命令一样在命令行中传递参数:

mvn -DAM_HOME=conf install

使用pom:

如果AM_HOM是变量且其值为conf,请按以下方式进行输入。

<plugins>
    ...


 <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        ...
        <configuration>
            ...
            <environmentVariables>
                <AM_HOME>conf</AM_HOME>
            </environmentVariables>
        </configuration>
    </plugin>

...
<plugins>

1
那么,他为什么不能直接将这些行添加到POM.xml中,而非通过命令行添加呢? - KItis
这是我之前使用的相同解决方案。System.getEnv("AM_HOME")返回null。 - johnny-b-goode
抱歉,发现错误。感谢您的帮助。但我使用<environmantVariables>代替。 - johnny-b-goode
顺便问一下,你知道吗,是否可以使用先前定义的变量来定义一些环境变量?例如:<systemPropertyVariables> <AM_HOME>conf</AM_HOME> <AM_HOME2>${AM_HOME}2</AM_HOME2> </systemPropertyVariables> - johnny-b-goode
1
这就是诀窍。这是设置环境变量以后使用System.getEnv读取的正确方法,与互联网上大多数回答这个问题的方式不同,他们说正确的方法是设置属性。 - Nicolás Arias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接