【问题标题】:Inheriting Maven profiles继承 Maven 配置文件
【发布时间】:2010-09-12 15:35:16
【问题描述】:

子 POM 是否可以继承父 POM 中定义的配置文件?如果有,怎么做?

【问题讨论】:

    标签: maven-2 maven-profiles


    【解决方案1】:

    在父 POM 中定义的配置文件在继承父 POM 的子 POM 中继承,无需执行任何操作。为了以防万一,Maven Help Plugin 有非常有用的目标,允许处理配置文件:

    【讨论】:

    • 这有点像是对您的答案的补充(一个示例),而不是真正的答案本身。然后我意识到我误读了 OP 问题。
    • 唯一的问题是,在子配置文件中,help:active-profiles 不显示继承的配置文件,我认为这是一种误导。
    • 您提到的这个“问题”是因为 Maven 不支持配置文件继承。配置文件在父 POM 中执行,而不是在子 pom 中执行,因此根据配置文件的作用,它可能感觉它是继承的。在此处查看 Maven 支持的继承:maven.apache.org/guides/introduction/…
    • FWIW,我发现使用 Maven 3.2 和 Maven 3.5(最新)help:all-profiles 不会正确报告子项目的激活。它会将所有从父级继承的配置文件报告为非活动状态,无论它们实际上是否处于活动状态。
    • 投反对票,正如 gigi2 的回答所说,配置文件只是“某种”继承,gigi2 的链接提供了一个更完整的答案,可以帮助其他用户理解一些令人讨厌的错误
    【解决方案2】:

    我不认为它是遗传的。 http://www.dashbay.com/2011/03/maven-profile-inheritance/ http://looking4q.blogspot.com/2011/01/maven-profiles-inheritance.html 您可能会发现可用的配置文件很可能是因为它们被默认激活

    【讨论】:

    • 第一个链接看起来很不错;您可以考虑在答案中总结其内容。所以结果是它们是某种继承的,但不是完全继承的:只有部分功能会被继承,继承的配置文件可能只影响定义它们的父 pom,而不影响子 pom .
    【解决方案3】:

    我测试了使用 maven 3.3.9 继承的配置文件。如果父 pom 声明子模块(聚合),则配置文件在子模块中可见。如果父 pom 没有声明子模块(继承),则配置文件不可见。

    【讨论】:

    • 这是一个很好的观察结果(并解释了我所看到的行为)。你有参考这是记录在哪里?
    • @Gary 我手头没有参考资料。
    【解决方案4】:

    这不仅是可能的,而且是强制性的。如果你声明一个父 POM,你会得到它的所有配置文件。

    【讨论】:

    • 你能提供一个来源吗?这导致我非常沮丧,我想仅通过激活并且仅在父级中运行目标。我的想法是我可以通过个人资料来做到这一点,但我不确定。
    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2011-11-26
    • 2012-09-23
    • 2013-01-16
    • 1970-01-01
    相关资源
    最近更新 更多