模块中项目之间的依赖关系

时间:2018-09-05 17:07:14

标签: maven build dependency-management

比方说,您有4个项目,每个项目都相互依赖: A取决于B,B取决于C,C取决于D. 所有项目都是使用Maven构建的。

保持版本同步以使某人更新项目D或C不会破坏项目A的构建的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

Maven背后的想法是在不同项目中包括模块化。这使得从事这些项目的团队可以独立工作,并且可以在各自的模块上工作,而不必担心其他团队。

但是我们可能会遇到这样的情况,即已经发布了新版本的依赖项目,但我们不知道。如果您正在运行Maven 2来解决此问题,则可以在pom.xml中使用<version>LATEST</version>命令来处理该特定依赖项。就像-

 <dependency>
    <groupId>javax.portlet</groupId>
    <artifactId>portlet-api</artifactId>
    <version>LATEST</version>
 </dependency>

但这已从Maven 3中止。根据Maven的官方说明-

  

插件的Metaversion解析内部,Maven 2.x使用了特殊的   版本标记RELEASE和LATEST以支持自动插件版本   解析度。这些metaversions也已在   声明的元素。为了可复制   内部版本,Maven 3.x不再支持在以下版本中使用这些metaversions   POM。结果,用户将需要替换出现的这些   具体版本的元版本。

因此,建议始终使用具体版本。

但是,如果您仍然希望使用最新版本的依赖项,则可以在Maven命令提示符中使用以下命令-

  

MVN版本:use-latest-versions