2013-07-04 38 views
1

我有一个多模块项目,这依赖于另外,因为这子模块之一:Maven依赖与使用增量詹金斯建立

pom.xml (parent pom) 
| 
+---- pom.xml (project A) 
| 
+---- pom.xml (project B) depends on A 

我建立它在詹金斯,使用选项“增量构建“(Maven工作类型)。我的问题是,当只有项目B有变化(这意味着詹金斯正在建设只有项目B),詹金斯正在从项目A下载最新的快照,而不是使用项目A“目标”目录中存在的二进制文件在之前的版本中)。

如果触发完整构建,问题消失,Jenkins使用正确的二进制文件。 有没有人有同样的问题?

谢谢!

回答

1

它不是问题,它是maven操作的方式。工件是总是从储存库带来的,即使对于多模块构建。如果你建立了整个树,你只是不会注意到,因为从本地回购协议中提取的文件是你的版本几分钟前放在那里的文件。

如果您打开命令提示符以投影B的根目录并从命令行执行maven构建,您将获得完全相同的行为 - maven将在本地存储库中查找A(如果未找到远程)并且不会查看A的/目标目录。

如果这是标准的Maven你可以使用Maven的also-make flag从根目录下,并告诉Maven来构建项目B和所有B的相关性,这将使行家还建立A.