maven插件嵌套进程的系统属性

时间:2011-04-18 14:56:42

标签: maven-2 maven maven-release-plugin

我想设置hudson工作来从hudson执行我们项目的发布。但我有一个问题:我们的构建过程正在运行需要连接到db的测试,主机:db的端口被指定为系统参数。但是,当我尝试释放这样的系统参数时:准备它似乎是创建一个嵌套的进程,并且不会将任何系统参数传递给它。 如何将系统参数传递给嵌套进程?

我可以使用maven个人资料吗?

感谢任何评论!

2 个答案:

答案 0 :(得分:1)

-D属性不会可靠地从万无一失的传播到你的测试(我不知道为什么它适用于eclipse)。在命令行上使用maven时,使用argLine属性来包装您的属性。这会将它们传递给您的测试

mvn -DargLine="-D<property>=<value>" <goal>

使用System.getProperty读取代码中的值。请查看有关System.getenvSytem.getProperty之间差异的this帖子。

(这取自我以前的answer。)

答案 1 :(得分:1)

pom.xml 无法 可以读取系统属性,请参阅Environment variable properties。但是你不应该把pom绑在仅存在于特定计算机上的变量上。示例:JAVA_HOME无处不在,mydatabase.username没有。

正确的方法是在属性文件上编写配置并从pom中读取它。通过这种方式,您可以获得文档化的配置,而不知道哪些系统变量。它也比使用-D参数保留shell脚本要简单。