Maven 2 在不再次运行构建的情况下安装构建工件

Maven 2 在不再次运行构建的情况下安装构建工件,maven-2,jenkins,maven-install-plugin,Maven 2,Jenkins,Maven Install Plugin,对于我的一个Jenkins构建,我有一个相当复杂的构建工作流。该项目包含两个模块。模块M1构建服务,模块M2构建服务客户端。M1依赖于M2(别问我为什么)。M2需要从M1中的ejb创建存根。所以我们处于一个循环依赖,我试图通过以下构建顺序来绕过它 mvn清洁安装(整个项目) mvn包-PCI(适用于M2,配置文件用于收集所有依赖项,包括M1 jar) 将生成工件和依赖项复制到不同的计算机以创建存根 创建存根 用包含存根的版本覆盖M2构建工件 mvn安装:安装(适用于M2) 运行最终安装时,它会爆

对于我的一个Jenkins构建,我有一个相当复杂的构建工作流。该项目包含两个模块。模块M1构建服务,模块M2构建服务客户端。M1依赖于M2(别问我为什么)。M2需要从M1中的ejb创建存根。所以我们处于一个循环依赖,我试图通过以下构建顺序来绕过它

  • mvn清洁安装(整个项目)
  • mvn包-PCI(适用于M2,配置文件用于收集所有依赖项,包括M1 jar)
  • 将生成工件和依赖项复制到不同的计算机以创建存根
  • 创建存根
  • 用包含存根的版本覆盖M2构建工件
  • mvn安装:安装(适用于M2)
  • 运行最终安装时,它会爆炸:

    [信息][安装:安装{执行:默认cli}]
    [信息]----------------------------------------------------------------
    [错误]生成错误
    [信息]----------------------------------------------------------------
    [信息]此项目的打包未将文件分配给生成工件
    [信息]------------------------------------------------------------------------

    所以我想出了一个主意,既然我已经使用了Jenkins,而且我正在部署到我们的快照目录中,我没有什么好担心的,我可以省去本地部署,因为它无论如何都会从快照repo中提取更新的版本。结果是,Jenkins在运行安装后为作业归档工件。因为我没有运行最终安装,所以部署了没有存根的版本(我相信是从步骤2开始)

    然后,我将Jenkins作业配置为除了maven集成的自动归档功能之外,还使用后期构建选项显式归档我的服务客户机jar。结果是,我为Jenkins的工作归档了服务客户机JAR。一个是项目级(所需版本带有存根),另一个是M2(不带存根)。当然,部署了没有存根的版本


    你知道我如何在不改变项目结构的情况下摆脱这个困境吗。只要开发人员的愿望得到满足,我就可以向pom文件添加内容。詹金斯的工作是我的领域。

    听起来你需要重新组织。是否可以将客户机中的服务器->客户机依赖项分解成一个单独的jar,并将客户机上的依赖项更改为这个新jar上的依赖项?

    重组没有多大帮助。问题是我不想告诉maven如何创建存根,所以Jenkins需要创建存根。看起来,Jenkins在创建存根之前对存根进行归档。步骤1是构建的主要步骤。