我想设置hudson工作来从hudson执行我们项目的发布。但我有一个问题:我们的构建过程正在运行需要连接到db的测试,主机:db的端口被指定为系统参数。但是,当我尝试释放这样的系统参数时:准备它似乎是创建一个嵌套的进程,并且不会将任何系统参数传递给它。 如何将系统参数传递给嵌套进程?
我可以使用maven个人资料吗?
感谢任何评论!
答案 0 :(得分:1)
-D
属性不会可靠地从万无一失的传播到你的测试(我不知道为什么它适用于eclipse)。在命令行上使用maven时,使用argLine属性来包装您的属性。这会将它们传递给您的测试
mvn -DargLine="-D<property>=<value>" <goal>
使用System.getProperty
读取代码中的值。请查看有关System.getenv
和Sytem.getProperty
之间差异的this帖子。
(这取自我以前的answer。)
答案 1 :(得分:1)
pom.xml
无法 可以读取系统属性,请参阅Environment variable properties。但是你不应该把pom绑在仅存在于特定计算机上的变量上。示例:JAVA_HOME
无处不在,mydatabase.username
没有。
正确的方法是在属性文件上编写配置并从pom中读取它。通过这种方式,您可以获得文档化的配置,而不知道哪些系统变量。它也比使用-D
参数保留shell脚本要简单。