如何设置环境变量(换句话说,在pom文件中可由System.getenv("APP_HOME")内部访问?
APP_HOME=/path/home我知道我可以在.profile中设置它,但是不知道pom是否可以做同样的事情。
根据bmargulies下面的建议,我尝试了以下方法,但没有成功
<build>
<finalName>KvpStore</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>**/*Test*.java</include>
</includes>
<environmentVariables>
<APP_NAME>blah_blah</APP_NAME> <------------------------
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>发布于 2012-12-25 17:30:27
documentation of the maven-surefire-plugin展示了一些示例,并描述了如何设置系统属性。
<configuration>
<systemPropertyVariables>
<propertyName>propertyValue</propertyName>
<buildDirectory>${project.build.directory}</buildDirectory>
[...]
</systemPropertyVariables>
</configuration>使用它们而不是环境变量可能更好,因为使用它们更简单,因为环境变量需要正确设置,并且必须重新启动cmd.exe和jvm才能使它们工作。
不需要为测试配置includes,因为maven-surefire-plugin已经有了以下默认值:
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*TestCase.java</include>
</includes>发布于 2012-12-25 10:11:03
有些插件,比如surefire,可以让你设置它们。一般来说,在pom里是不可能的。
surefire的文档是here。Surefire将在测试运行期间设置环境变量,而不是设置其他任何环境变量。你还得做个万无一失的叉子。
在配置中...
<configuration>
<forkMode>always</forkMode>
<environmentVariables>
<var1>val1</var1>
</environmentVariables>
</configuration>https://stackoverflow.com/questions/14027003
复制相似问题