声明MAVEN依赖项以创建可扩展项目的正确/最佳方法是哪种?

时间:2018-07-25 07:46:02

标签: maven dependencies maven-3 pom.xml

因此,我正在以以下方式声明依赖项的项目,然后我问这是一种可伸缩/适当的方式还是有更好的公式。

我们要做的第一件事是在当前项目中声明依赖项,不指定版本部分

<dependencies>
   <dependency>
      <groupId>org.dependency</groupId>
      <artifactId>dependency1</artifactId>
   </dependency>
</dependencies>

然后,我们将版本分配委托给辅助pom ,将其称为“ common-management.pom”,每个项目都委托给这个项目(这意味着:每个项目都导入该pom来管理他们的pom依赖版本)

<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.company</groupId>
         <artifactId>common-management</artifactId>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
<dependencyManagement>

现在,我们更改为common-management.pom,并使用此依赖项的版本声明一个变量

<properties>
   <variable1.version>1.0.0</variable.version>
</properties>

最后,我们在common-management.pom的dependencyManagment部分中将依赖项与它的版本相关联

<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.dependency</groupId>
         <artifactId>dependency1</artifactId>
         <version>${variable1.version}</version>
      </dependency>
   </dependencies>
<dependencyManagement>

任何评论将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

这是一种合理的方法。

您仅用一个替换许多版本号。这样可以更轻松地保持版本的一致性。另外两个方面:

  • 仅当项目以某种方式互连时,对齐所有这些版本才有意义。如果您将区域完全分隔开,则每个区域最好有一个BOM(“第二级pom”),因为否则会将两个区域隐式地绑在一起。

  • 该方法不能保证每个人都使用相同的版本,因为仍然必须更新BOM表的版本。但是,在许多情况下,这是一个优势,因为并非每个人都必须同时进行更新。另一方面,如果您始终同时构建所有项目,则多模块项目可能是更好的选择。