Maven如何知道如何进行构建?

时间:2018-12-11 02:51:53

标签: java maven

假设我有一个大型项目,并且在本地构建。一半的依赖关系来自Maven Central,一半的依赖关系是我自己项目中的不同模块,所有模块都进入了M2。

如果我将一半的SNAPSHOTS从本地nexus服务器中拉出,但是我已经修改了其中一个SNAPSHOTS的源代码,是否拉过nexus快照,将其放到m2中,然后编译更改的版本并覆盖我的m2中的快照?那是浪费时间吗?

1 个答案:

答案 0 :(得分:1)

这完全是根据我的个人经验!

假设您有一个项目A(PA)和一个项目B(PB)。 PB通过通常的maven <dependency>标签具有PA的依赖关系。

现在,您可以修改PA,并在本地对其进行编译。除非您运行maven命令install,否则您的从属项目PB将无法获取修改后的代码-正如您在有关修改其中一个SNAPSHOT的问题中提到的那样。

一旦在maven for PA上运行install命令,maven会将新的工件放到本地计算机的连接仓库中,下次构建PB时,它将拾取最新的修改后的PA依赖关系。

基本上,在构建项目时,maven会执行该操作,它首先进入您的本地nexus存储库目录,通常但并非总是<M2_HOME>\repository,以满足所有依赖关系,如果找不到,则转到通常到您公司的本地回购,然后再到公共回购。所有这些信息都在Maven的settings.xml文件中进行配置。

因此,您在做什么是对的。您必须先将本地SNAPSHOT构建安装到本地关系,然后在编译依赖项目时,maven将负责其余的工作。

这是 的浪费,这就是行家设计的方式!

相关问题