我不能让maven使用〜/ .m2 / settings.xml中定义的属性?

时间:2011-10-26 17:19:04

标签: maven

我使用〜/ .m2 / settings.xml存储我项目中pom.xml文件中使用的许多属性名称。如果我使XML无效(通过添加另一个<例如),maven立即生成错误,说它无法解析该文件。如果我保持XML有效,我的appBeans.xml文件中的设置不会选择对settings.xml中定义的属性的引用。

有没有人遇到过这个问题?我有点像我的智慧。

2 个答案:

答案 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的插件,我可以使其更具体。