Maven:从不同的pom导入pom属性



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

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

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

请建议。谢谢。

我想,今天,答案是NO。如果没有继承,就不能从外部依赖中读取属性。

然而,一个hack可以用codehaus Properties Maven Plugin完成。实际上,它可以从外部文件加载maven属性。它甚至可以使用classpath: url来加载文件。因此,您可以尝试从另一个依赖项(应该有一个适当的作用域,因为您可能不希望该依赖项的JAR在运行时挂起)加载这些。

共享依赖版本而不使用父POMs的通常方法是bom。

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

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

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

  1. 父节点有一个<dependencyManagement>节,其中列出了groupId、artifactId和版本
  2. 子节点只需要列出groupId和artifactId,因为版本是从父节点的<dependencyManagement>节继承的

,

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

更多信息在这里

最新更新