【问题标题】:Maven: Import pom properties from different pomMaven:从不同的 pom 导入 pom 属性
【发布时间】:2015-09-29 07:34:31
【问题描述】:

我想将项目 X pom 文件中的属性导入到我的项目 Y pom 中,例如库版本。我不想让项目 X 成为我项目的父项目。

我已尝试将项目 Xs pom 作为导入包含在依赖项管理部分中。

<dependency>
                <groupId>abc</groupId>
                <artifactId>def</artifactId>
                <version>1.1</version>
                <type>pom</type>
                <scope>import</scope>
</dependency>

请指教。 谢谢。

【问题讨论】:

标签: maven dependency-properties


【解决方案1】:

在不使用父 POM 的情况下共享依赖版本的常用方法是 BOM。

这些是单独的项目,仅包含由&lt;dependencyManagement&gt; 组成的pom.xml。然后可以使用&lt;scope&gt;import&lt;/scope&gt; 将其导入到其他几个项目中。

这些其他项目然后在 BOM 中导入dependencyManagement。

【讨论】:

  • true 对于依赖项,但我们必须记住,只有 dependencyManagement 是从 BOM 导入的。它不适用于属性、pluginManagement、distributionManagement 等。所以它可能无法回答关于属性的问题。
【解决方案2】:

基本上,您需要创建一个由两个项目导入的父 pom。

  1. 父级有一个&lt;dependencyManagement&gt; 部分,其中列出了 groupId、artifactId 和版本
  2. 子 pom 只需要列出 groupId 和 artifactId,因为版本继承自父级的 &lt;dependencyManagement&gt; 部分

例如:

root/pom.xml - Builds all modules, a simple pom with a `<modules>` section which includes parent, project1 and project2
root/parent/pom.xml - This has a `<dependencyManagement>` section
root/project1/pom.xml - parent=../parent/pom.xml
root/project2/pom.xml - parent=../parent/pom.xml

更多信息here

【讨论】:

  • OP 明确表示它不能是父级。
  • OP 说“我不想让项目 X 成为我项目的父项目”。我建议引入一个由 X 和 Y 继承的新父母
猜你喜欢
  • 1970-01-01
  • 2012-03-31
  • 2012-12-22
  • 1970-01-01
  • 2015-07-07
  • 2011-07-26
  • 2013-01-23
  • 2011-11-26
  • 1970-01-01
相关资源
最近更新 更多