安装构建工件而不再运行构建

时间:2011-06-22 19:31:37

标签: maven-2 jenkins maven-install-plugin

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

  1. mvn clean install(适用于整个项目)
  2. mvn package -PCI(对于带有配置文件的M2来收集所有依赖项,包括M1 jar)
  3. 将构建工件和依赖项复制到不同的机器以创建存根
  4. 创建存根
  5. 使用包含存根的版本覆盖M2构建工件
  6. mvn install:install(适用于M2)
  7. 运行最终安装时,它会弹出:

    [INFO] [install:install {execution:default-cli}]
    [INFO] ----------------------------------------------- -------------------------
    [错误]构建错误
    [INFO] ----------------------------------------------- -------------------------
    [INFO]此项目的包装未将文件分配给构建工件
    [INFO] ----------------------------------------------- -------------------------

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

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

    任何想法如何在不改变项目结构的情况下摆脱这种困境。只要开发人员的需求仍然存在,我就可以在pom文件中添加内容。詹金斯的工作是我的领域。

1 个答案:

答案 0 :(得分:0)

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