【问题标题】:I can't get maven to use properties defined in ~/.m2/settings.xml?我无法让 maven 使用 ~/.m2/settings.xml 中定义的属性?
【发布时间】:2012-10-11 00:14:41
【问题描述】:

我正在使用 ~/.m2/settings.xml 来存储我项目中 pom.xml 文件中使用的一些属性名称。如果我使 XML 无效(例如通过添加另一个

有人遇到过这个问题吗?我有点不知所措。

【问题讨论】:

    标签: maven


    【解决方案1】:

    反映来自 Maven 配置的属性通过资源过滤来工作。

    确保您的settings.xml、项目 pom 和目标 xml 文件包含正确的配置并位于正确的位置。

    如果我理解正确,您希望在 settings.xml 中存储属性名称和值,以便可以在您的项目文件中使用这些道具。我将提供一个工作示例:

    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>
    ...
    

    在此之后,您应该会看到过滤后的结果,例如在目标/类/appBeans.xml 中。

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

    【讨论】:

      【解决方案2】:

      Maven 属性不会反映在其他 XML 文件中。

      如果您将这些属性之一添加到运行读取 allBeans.xml 的特定插件的特定 pom 的 &lt;properties/&gt; 元素中,是否有效?我相信它不会,您的问题将是添加到 &lt;configuration/&gt; 以便插件将 maven 属性传递给它。

      如果您编辑您的问题以显示处理 appBeans.xml 的插件,我可以让这个更具体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-01
        • 2012-05-30
        • 2017-10-07
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        • 2012-09-06
        相关资源
        最近更新 更多