对于我的一个Jenkins构建,我有一个相当复杂的构建工作流程。该项目包含两个模块。模块M1构建服务,模块M2构建服务客户端。 M1依赖于M2(不要问我为什么)。 M2需要从M1中的ejb创建存根。所以我们处于循环依赖状态,我试图绕过以下的构建顺序。在没有再次运行构建的情况下安装构建工件
- MVN全新安装(整个项目)
- MVN包-PCI(M2为使用配置文件来收集所有的依赖含M1 JAR)
- 副本建立存根创造文物和依赖于不同的机器
- 创建存根
- 覆盖M2打造神器与包含存根版本
- MVN安装:安装(为M2)
与运行的最后安装,它炸弹时:
[INFO] [安装:安装{执行:默认-CLI}]
[INFO] ------------- -------------------------------------------------- ---------
[错误]编译错误
[INFO] ----------------------------- -------------------------------------------
[INFO] The packaging对于这个项目没有分配文件到构建神器
[INFO] --------------------------------- ---------------------------------------
所以我提出了这个想法,既然我已经使用Jenkins,并且我正在部署到我们的快照目录,我没有什么可担心的,我可以省略本地部署,因为它会从快照中提取新版本无论如何回购。结果是,詹金斯在完成安装之后将工件存档。由于我没有运行最终安装,没有存根的版本被部署(从我认为的第2步开始)。
然后,我配置了Jenkins作业,除了maven集成的自动存档功能之外,还使用post build选项显式存档了我的服务客户端jar。结果是,我将服务客户端jar存档为Jenkins的工作。一个是项目级别(所需版本带有存根)和一个在M2(没有存根)。当然,没有存根的版本已经部署了。
任何想法如何在不改变项目结构的情况下摆脱这种困境。只要开发者的愿望仍然实现,我就可以将东西添加到pom文件中。詹金斯的工作是我的领域。
重组,并没有多大帮助。问题是我不想告诉maven如何创建存根,所以Jenkins需要做存根创建。看起来,詹金斯在创建存根之前存档存根。第一步是构建的主要步骤。 –