【发布时间】:2011-01-28 05:18:40
【问题描述】:
我试图弄清楚在 Maven 3 中是如何定义 mixin 的,但除了嗡嗡声之外找不到任何东西。它作为here 和here 的重要新功能之一传播。我目前正在感受到层次结构的痛苦,并想试一试。有没有人有指向文档或定义语法的源的指针?
【问题讨论】:
我试图弄清楚在 Maven 3 中是如何定义 mixin 的,但除了嗡嗡声之外找不到任何东西。它作为here 和here 的重要新功能之一传播。我目前正在感受到层次结构的痛苦,并想试一试。有没有人有指向文档或定义语法的源的指针?
【问题讨论】:
Brett Porter 在对this answer 的评论中写道:
但是,Maven 3.0 还没有提供 mixin。 – 布雷特·波特 2 月 16 日 8:18
而且 AFAIK,mixin 仍然不存在。
【讨论】:
Jesse Glick 指出了 Maven 问题 5102,所以我只想提一下,那里的最新评论(2012 年 10 月 2 日)链接到提供 mixin 行为的新 maven 插件:maven-tiles。这似乎是最好的选择,直到 mixin 支持真正融入 Maven(现在已经延迟了几年)。
2015 年 1 月编辑:tknerr 指出此问题已被标记为审查 Maven 4 包含。 Maven 开发人员似乎认为需要更改 POM 格式才能正确支持此功能。 (作为一个长期使用 Maven 的用户,我对此并不感到惊讶。)
【讨论】:
您可以使用开源插件将 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
【讨论】:
目前为 Maven 3.2 计划的 Mixin 为 bug MNG-5102。它们是候选 Maven 3.1 中尚未解决的许多高度投票的错误之一。
“铺好欲望线”就到此为止了。
【讨论】: