使用增量构建与jenkins的Maven依赖关系
我有一个多模块项目,其中一个子模块依赖于另一个子模块,如下所示:使用增量构建与jenkins的Maven依赖关系,maven,jenkins,Maven,Jenkins,我有一个多模块项目,其中一个子模块依赖于另一个子模块,如下所示: pom.xml (parent pom) | +---- pom.xml (project A) | +---- pom.xml (project B) depends on A 我正在jenkins中构建它,使用“增量构建”(Maven作业类型)选项。我的问题是当只有项目B有更改时(这意味着jenkins正在构建只有项目B),jenkins正在从项目A下载最新的快照,而不是使用项目A的“目标”目录中的二进制文件(在以前的构建中
pom.xml (parent pom)
|
+---- pom.xml (project A)
|
+---- pom.xml (project B) depends on A
我正在jenkins中构建它,使用“增量构建”(Maven作业类型)选项。我的问题是当只有项目B有更改时(这意味着jenkins正在构建只有项目B),jenkins正在从项目A下载最新的快照,而不是使用项目A的“目标”目录中的二进制文件(在以前的构建中生成)
如果触发完整构建,问题就会消失,Jenkins使用正确的二进制文件。
有人有同样的问题吗
谢谢 这不是问题,这是maven的运作方式。工件总是从存储库中带来的,即使对于多模块构建也是如此。如果你构建了整棵树,你就不会注意到,因为从本地回购中提取的工件就是你构建的几分钟前放在那里的工件 如果您打开一个命令提示符,指向ProjectB的根目录,并从命令行执行maven构建,您将得到完全相同的行为—maven将在本地存储库中查找a(如果找不到,则在远程存储库中查找),而不会在a的/target目录中查找
如果这是标准的maven,您可以从根目录使用maven,并告诉maven构建项目B和所有B的依赖项,这将使maven也构建A。这不是问题,这是maven的操作方式。工件总是从存储库中带来的,即使对于多模块构建也是如此。如果你构建了整棵树,你就不会注意到,因为从本地回购中提取的工件就是你构建的几分钟前放在那里的工件 如果您打开一个命令提示符,指向ProjectB的根目录,并从命令行执行maven构建,您将得到完全相同的行为—maven将在本地存储库中查找a(如果找不到,则在远程存储库中查找),而不会在a的/target目录中查找 如果这是标准的maven,您可以从根目录使用maven,并告诉maven构建项目B和所有B的依赖项,这将使maven也构建A