3

在 Eclipse 中,我有一个依赖于 mvn 项目 BCD 的 MVN 项目 A

项目 B 包含一个mysettings.xml我有这样的属性: <iduser>${my.iduser}</iduser>

我有一个名为“部署”的 Maven 配置文件,它设置了 iduser 属性。到“管理员”。当我启动一个指定“部署”配置文件的 maven clean 包时,在 mysettings.xml 中我发现<iduser>ADMIN</iduser>

然后我创建了一个名为“mytest”的新配置文件,将该属性设置为“TESTUSER”。

如果我调用mvn -Dtest=MyClassTest -P mytest项目 C,似乎 maven 不会${my.iduser}在项目 Bmysettings.xml文件中替换。

有谁知道如何在测试阶段运行它?谢谢

4

1 回答 1

2

Maven 不会做你希望的事情。该mysettings.xml文件将使用您在构建项目 B 时指定的任何配置文件放入项目 B 的 jar 文件中,并且${my.iduser}占位符将消失(过滤掉)。它不会来自项目 B 的源目录。

我从来没有找到一个令人满意的方法来用 Maven 做到这一点。如果mysettings.xml是 Spring 配置文件,则可以在运行时使用PropertySourcesPlaceholderConfigurer,而不是在构建时使用 Maven 过滤。

于 2012-10-10T11:57:09.403 回答