Maven 3中的继承依赖顺序
Order of inherited dependencies in Maven 3
我正在使用 Maven 3.0.4。假设我有一个具有依赖性 dep-A
的父 pom 和一个子 pom,继承自父级,具有依赖性 dep-B
和 dep-C
。当我查看子项目的有效 pom 时,我看到依赖项最终按以下顺序声明:
dep-B
dep-C
dep-A
换句话说,继承的(父)依赖项被添加到列表的底部。问题是我使用的是依赖声明顺序很重要的自定义 Maven 插件。
有没有办法强制 Maven 添加继承依赖项列表 在 子项列表之上?
快速回答:不可能影响最终 pom 中依赖项列表中(继承/自定义)依赖项的顺序。
然而,您可以创建一个构建场景,在其中使用 http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html 生成结果/最终 pom,仅使用根据您的需要重新排序的依赖项顺序覆盖它(如果它始终是相同的人工制品,则很容易 -如果您需要动态确定您从哪个 "level" 继承某些依赖项,则需要做更多的工作)并将此 pom.xml 用于 运行 您的自定义插件。 (这只是一点头脑风暴——我想这至少需要两个独立的构建)。因此,如果您对自定义插件有任何影响,则通过更改该插件的行为可能会更好。
注意:我不知道对构建的影响(尤其是反应器构建顺序)因此我建议您进行一些简单的手动测试(更改顺序并检查是否无论自定义插件如何,build 仍然有效)。
我正在使用 Maven 3.0.4。假设我有一个具有依赖性 dep-A
的父 pom 和一个子 pom,继承自父级,具有依赖性 dep-B
和 dep-C
。当我查看子项目的有效 pom 时,我看到依赖项最终按以下顺序声明:
dep-B
dep-C
dep-A
换句话说,继承的(父)依赖项被添加到列表的底部。问题是我使用的是依赖声明顺序很重要的自定义 Maven 插件。
有没有办法强制 Maven 添加继承依赖项列表 在 子项列表之上?
快速回答:不可能影响最终 pom 中依赖项列表中(继承/自定义)依赖项的顺序。
然而,您可以创建一个构建场景,在其中使用 http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html 生成结果/最终 pom,仅使用根据您的需要重新排序的依赖项顺序覆盖它(如果它始终是相同的人工制品,则很容易 -如果您需要动态确定您从哪个 "level" 继承某些依赖项,则需要做更多的工作)并将此 pom.xml 用于 运行 您的自定义插件。 (这只是一点头脑风暴——我想这至少需要两个独立的构建)。因此,如果您对自定义插件有任何影响,则通过更改该插件的行为可能会更好。
注意:我不知道对构建的影响(尤其是反应器构建顺序)因此我建议您进行一些简单的手动测试(更改顺序并检查是否无论自定义插件如何,build 仍然有效)。