我使用〜/ .m2 / settings.xml存储我项目中pom.xml文件中使用的许多属性名称。如果我使XML无效(通过添加另一个<例如),maven立即生成错误,说它无法解析该文件。如果我保持XML有效,我的appBeans.xml文件中的设置不会选择对settings.xml中定义的属性的引用。
有没有人遇到过这个问题?我有点像我的智慧。
答案 0 :(得分:7)
通过资源过滤反映Maven配置中的属性。
确保您的settings.xml
,项目pom和目标xml文件包含正确的配置并位于正确的位置。
如果我理解正确,您希望在settings.xml中存储属性名称和值,以便可以在项目文件中使用props。我将提供一个有效的例子:
在settings.xml
中定义默认配置文件和属性:
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<someProp>Value</someProp>
</properties>
</profile>
</profiles>
在pom.xml
中定义资源文件夹的filtering = true:
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
在xml文件中定义属性(位于src/main/resources folder
):
...
<element>${someProp}</element>
...
在此之后您应该看到过滤结果,例如在target / classes / appBeans.xml中。
请记住,如果您正在使用Eclipse&amp; m2eclipse或类似的插件,它可能无法在不重新启动Eclipse的情况下开始使用更新的settings.xml
,它的自动构建有时会覆盖目标文件夹中的文件。我正在谈论经验:)
答案 1 :(得分:0)
Maven属性不会反映在其他XML文件中。
如果将这些属性中的一个添加到运行特定插件的特定pom的<properties/>
元素中,该插件将读取allBeans.xml,那么它是否有效?我相信它不会,并且您的问题将变成添加到插件的<configuration/>
以将maven属性传递给它。
如果您编辑问题以显示处理appBeans.xml的插件,我可以使其更具体。