2011-06-22 37 views
3

对于我的一个Jenkins构建,我有一个相当复杂的构建工作流程。该项目包含两个模块。模块M1构建服务,模块M2构建服务客户端。 M1依赖于M2(不要问我为什么)。 M2需要从M1中的ejb创建存根。所以我们处于循环依赖状态,我试图绕过以下的构建顺序。在没有再次运行构建的情况下安装构建工件

  1. MVN全新安装(整个项目)
  2. MVN包-PCI(M2为使用配置文件来收集所有的依赖含M1 JAR)
  3. 副本建立存根创造文物和依赖于不同的机器
  4. 创建存根
  5. 覆盖M2打造神器与包含存根版本
  6. MVN安装:安装(为M2)

与运行的最后安装,它炸弹时:

[INFO] [安装:安装{执行:默认-CLI}]
[INFO] ------------- -------------------------------------------------- ---------
[错误]编译错误
[INFO] ----------------------------- -------------------------------------------
[INFO] The packaging对于这个项目没有分配文件到构建神器
[INFO] --------------------------------- ---------------------------------------

所以我提出了这个想法,既然我已经使用Jenkins,并且我正在部署到我们的快照目录,我没有什么可担心的,我可以省略本地部署,因为它会从快照中提取新版本无论如何回购。结果是,詹金斯在完成安装之后将工件存档。由于我没有运行最终安装,没有存根的版本被部署(从我认为的第2步开始)。

然后,我配置了Jenkins作业,除了maven集成的自动存档功能之外,还使用post build选项显式存档了我的服务客户端jar。结果是,我将服务客户端jar存档为Jenkins的工作。一个是项目级别(所需版本带有存根)和一个在M2(没有存根)。当然,没有存根的版本已经部署了。

任何想法如何在不改变项目结构的情况下摆脱这种困境。只要开发者的愿望仍然实现,我就可以将东西添加到pom文件中。詹金斯的工作是我的领域。

回答

0

这听起来像你需要重新组织。是否有可能将客户端中的服务器 - >客户端依赖关系排除到单独的jar中,并将客户端上的依赖关系更改为对这个新jar的依赖关系?

+0

重组,并没有多大帮助。问题是我不想告诉maven如何创建存根,所以Jenkins需要做存根创建。看起来,詹金斯在创建存根之前存档存根。第一步是构建的主要步骤。 –

相关问题