我使用Maven作为构建工具。 我已叫一个环境变量env
。 我怎样才能在访问这个环境变量的值pom.xml
文件?
Answer 1:
退房Maven的属性指南 ...
作为Seshagiri在评论中指出, ${env.VARIABLE_NAME}
会做你想要什么。
我会加提醒一句,说一个pom.xml
应该完整地描述你的项目,所以请使用环境变量明智。 如果你让你的建立依赖于你的环境,他们是很难复制
Answer 2:
这可能是更安全的直接传递环境变量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
Answer 3:
此外,请确保您的环境变量 由大写字母仅由 ....我不知道为什么(文档没有什么明确的关于它说,至少@Andrew白提供的链接),但如果这个变量是一个小写单词(如env.dummy),变量总是来到空或空...
我是为此而努力就像一个小时,直到我决定尝试一个大写的变量,问题就解决了。
OK变量的例子:
- 假
- DUMMY_ONE
- JBOSS_SERVER_PATH
( 注 :我使用Maven V3.0.5)
我希望这可以帮助别人....
Answer 4:
我们不能用
<properties>
<my.variable>${env.MY_VARIABLE}</my.variable>
</properties>
Answer 5:
我用同样的事情挣扎,运行设置变量一个shell脚本,然后想要使用的变量共享,聚甲醛。 我们的目标是让环境变量替换使用com.google.code.maven-替代品,插件在我的项目文件中的字符串。
使用${env.foo}
或${env.FOO}
并没有为我工作。 Maven的只是没有找到变量。 什么工作是传递变量作为Maven的命令行参数。 这里的设置:
坐落在shell脚本变量。 如果你在一个子脚本启动Maven的,请确保该变量是越来越设置,例如使用
source ./maven_script.sh
从父脚本中调用它。在共享,聚甲醛,创建一个命令行PARAM,抓住环境变量:
<plugin> ... <executions> <executions> ... <execution> ... <configuration> <param>${foo}</param> <!-- Note this is *not* ${env.foo} --> </configuration>
在com.google.code.maven-替代品-插件,使得替换值
${foo}
。在调用行家我的shell脚本,将其添加到命令:
-Dfoo=$foo