【发布时间】:2011-03-14 23:49:33
【问题描述】:
有没有办法(我的意思是如何)在 maven 项目中设置系统属性?
我想从我的测试和我的 web 应用程序(本地运行)中访问一个属性,并且我知道我可以使用 java 系统属性。
我应该把它放在 ./settings.xml 或类似的东西中吗?
上下文
我参加了一个开源项目并设法将数据库配置更改为使用 JavaDB
现在,在 JavaDB 的 jdbc url 中,可以将数据库的位置指定为完整路径(参见:this other question)
或系统属性:derby.system.home
我的代码已经可以工作了,但目前它都被硬编码为:
jdbc:derby:/Users/oscarreyes/javadbs/mydb
我想删除完整路径,保留如下:
jdbc:derby:mydb
为此,我需要将系统属性 (derby.system.home) 指定给 maven,但我不知道如何操作。
测试是使用 junit 执行的(我在 pom.xml 中没有看到任何插件),并且 Web 应用程序使用 jetty 插件运行。
在命令行中指定系统属性似乎适用于码头,但我不确定这是否实用(授予其他一些用户可能从 eclipse/idea/whatever 运行它)
【问题讨论】:
-
当我将测试移至集成测试时,我遇到了完全相同的问题(只是将它们重命名并添加了 maven-failsafe-plugin。此系统属性停止工作。我还不得不从 maven- 中移动 systemPropertyVariables surefire-plugin 到这个 maven-failsafe-plugin 中。在 maven-surefire-plugin 中配置的系统属性在集成测试中被忽略了。