我正在尝试确定以下情况的方法:
有3个Maven工件:A,B和C.
B取决于A.(即它使用了一些A的代码)
C取决于A和B(即它使用A的一些代码和B的代码).
假设我想为B和C使用相同版本的A.
应该采用什么方法?
1)将A声明为C的pom.xml中的依赖项.
Pro:开发人员很清楚C依赖于A. Con:如果A的版本发生变化,则需要在多个位置进行更新.(B和C)
2)不要将A声明为C的pom.xml中的依赖项.
Pro/Con:选项1的对面.
1)在C的pom.xml中将A声明为依赖项。
依赖是可读的
依赖是灵活的。如果你想从B中删除A的依赖,你不需要考虑依赖于B的项目。正如其他答案
中所建议的,在pom.xml中写下直接依赖并让maven处理它是一个很好的做法。
2)不要在C的pom.xml中将A声明为依赖项。
大多数情况下,没有开发人员会看到 pom.xml。如果他们愿意,他们可以通过使用看到它
mvn dependency:tree,并且它将显示传递依赖。
当A的新版本发布时,将会出现单点变更。如果您在多个位置定义依赖项,您可能会忘记更新所有位置。在这种情况下,Maven 会自动使用最新的版本。但是,有时确实会刺痛。
有些人喜欢这样做,因为大多数情况下,这种类型的依赖关系是常识(例如MyWebApp -> MyWebAppLib -> MySharedLib和MyWebApp -> MySharedLib),并且他们希望避免在每个版本的多个位置更新版本的额外步骤。
我已经把优点和缺点都写下来了,你自己评估一下最适合你的。
编辑#1:哎呀!我已经改变我的评论了。
Edit#2:在对此答案进行讨论后更新了答案。
| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |