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

jka*_*arm 3 maven

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

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

Ant*_*nen 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>
Run Code Online (Sandbox Code Playgroud)

在以下位置定义资源文件夹的filtering = true pom.xml:

<build>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>
Run Code Online (Sandbox Code Playgroud)

在xml文件中定义属性(位于src/main/resources folder):

...
<element>${someProp}</element>
...
Run Code Online (Sandbox Code Playgroud)

在此之后,您应该在target/classes/appBeans.xml中看到过滤结果.

请记住,如果您正在使用Eclipse和m2eclipse或类似的插件,它可能无法在settings.xml不重新启动Eclipse的情况下开始使用更新,并且它的自动构建有时会覆盖目标文件夹中的文件.我正在谈论经验:)