如何在POM.xml中引用环境变量?

问题

我使用maven作为构建工具。我设置了一个名为env的环境变量。如何在pom.xml文件中访问此环境变量的值?


#1 热门回答(149 赞)

看看Maven Properties Guide ......

正如Seshagiri在评论中指出的那样,${env.VARIABLE_NAME}会做你想做的事。

我会添加一个警告,并说apom.xml应该完整地描述你的项目,所以请明智地使用环境变量。如果你的构建取决于你的环境,则它们更难以重现


#2 热门回答(18 赞)

将环境变量直接传递给maven系统属性可能更安全。例如,在Linux上,你想要访问环境变量MY_VARIABLE。你可以在pom文件中使用系统属性。

<properties>
    ...
    <!-- Default value for my.variable can be defined here -->
    <my.variable>foo</my.variable>
    ...
</properties>
...
<!-- Use my.variable -->
... ${my.variable} ...

在maven命令行上设置属性值:

mvn clean package -Dmy.variable=$MY_VARIABLE

#3 热门回答(13 赞)

此外,请确保你的环境变量is仅由大写字母组成....我不知道为什么(文档没有说明它,至少@Andrew White提供的链接),但如果变量是小写字(例如env.dummy),则变量总是为空或为空...

我正在努力解决这个问题,直到我决定尝试UPPER CASE VARIABLE,问题解决了。

OK变量示例:

  • DUMMY_ONE
  • JBOSS_SERVER_PATH

(说明:我使用的是maven v3.0.5)

我希望这可以帮助某人......