我有一个MVN项目A依赖于mvn项目B-C-D
项目B包含mysettings.xml
,我有这样的属性:
<iduser>${my.iduser}</iduser>
我有一个名为“deployment”的maven配置文件,用于设置iduser prop。 “管理”。
当我启动指定“部署”配置文件的maven clean包时,在mysettings.xml中我找到<iduser>ADMIN</iduser>
然后我创建了一个名为“mytest”的新配置文件,将该属性设置为“TESTUSER”。
如果我在项目C上调用mvn -Dtest=MyClassTest -P mytest
,似乎maven不会替换项目B ${my.iduser}
文件中的mysettings.xml
。
有谁知道如何在测试阶段运行? 感谢
答案 0 :(得分:2)
Maven不会做你所希望的。 mysettings.xml
文件将使用您在构建项目B时指定的任何配置文件放入Project B的jar文件中,${my.iduser}
占位符将消失(过滤掉)。它不会来自项目B的源目录。
我从来没有找到过与Maven这样做的满意方式。如果mysettings.xml
是Spring配置文件,则可以在运行时使用PropertySourcesPlaceholderConfigurer,而不是在构建时使用Maven过滤。