【问题标题】:How to use Maven 3 mixins?如何使用 Maven 3 mixin?
【发布时间】:2011-01-28 05:18:40
【问题描述】:

我试图弄清楚在 Maven 3 中是如何定义 mixin 的,但除了嗡嗡声之外找不到任何东西。它作为herehere 的重要新功能之一传播。我目前正在感受到层次结构的痛苦,并想试一试。有没有人有指向文档或定义语法的源的指针?

【问题讨论】:

    标签: maven mixins maven-3


    【解决方案1】:

    Brett Porter 在对this answer 的评论中写道:

    但是,Maven 3.0 还没有提供 mixin。 – 布雷特·波特 2 月 16 日 8:18

    而且 AFAIK,mixin 仍然不存在。

    【讨论】:

    • 我也在推特上问过,从 Jason van Zyl 那里得到了同样的答案。看起来它将在 Maven 3.1 中出现。见:twitter.com/jvanzyl/status/10601935842
    • @Mirko 感谢您的反馈!
    【解决方案2】:

    Jesse Glick 指出了 Maven 问题 5102,所以我只想提一下,那里的最新评论(2012 年 10 月 2 日)链接到提供 mixin 行为的新 maven 插件:maven-tiles。这似乎是最好的选择,直到 mixin 支持真正融入 Maven(现在已经延迟了几年)。

    2015 年 1 月编辑tknerr 指出此问题已被标记为审查 Maven 4 包含。 Maven 开发人员似乎认为需要更改 POM 格式才能正确支持此功能。 (作为一个长期使用 Maven 的用户,我对此并不感到惊讶。)

    【讨论】:

    • MNG-5102 当前显示:“修复版本/s:要审查 4.x 的问题”。所以它还没有在 3.x 中,并且可能永远不会在那里......
    【解决方案3】:

    您可以使用开源插件将 mixin 引入您的 pom。

    有几个插件可以以 mixin 的形式解决层次结构的复杂性。 其中之一旨在解决插件/插件管理部分的层次结构。

    它读取所有导入的 POM 文件,并以与 Maven 计算有效 pom 相同的方式将它们合并到 POM 文件中。该插件仅合并构建、属性和配置文件部分,不合并 pom 的任何其他元素,例如依赖项、存储库等……

    在下面的 sn-p 中,工件 sample-mixin 将使用 sample-mixin pom 文件中定义的插件管理配置。无需为此继承任何父 /base pom..

    <plugin>
      <groupId>com.github.odavid.maven.plugins</groupId>
      <artifactId>mixin-maven-plugin</artifactId>
      <version>0.1-alpha-23</version>
      <extensions>true</extensions>
      <configuration>
        <mixins>
          <mixin>
            <groupId>mixin-example</groupId>
            <artifactId>sample-mixin</artifactId>
            <version>${project.version}</version>
          </mixin>
        </mixins>
      </configuration>
    </plugin>
    

    如需进一步阅读,请查看: http://rethinkingswd.blogspot.co.il/2014/09/mixin-maven-plugin-reusable-project.html

    【讨论】:

      【解决方案4】:

      目前为 Maven 3.2 计划的 Mixin 为 bug MNG-5102。它们是候选 Maven 3.1 中尚未解决的许多高度投票的错误之一。

      “铺好欲望线”就到此为止了。

      【讨论】:

      • 链接已损坏。请替换链接:issues.apache.org/jira/browse/MNG-5102
      • 据我所知,@NealeU,这些 mixin 仍然没有包含在 Maven 中(现在是 v3.6.1 吗?)并且很可能在没有事先 pom-format-change 的情况下不会包含在内。
      猜你喜欢
      • 2013-10-26
      • 2014-08-06
      • 2014-09-11
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多