在构建结束时未执行installAtEnd和deployAtEnd

时间:2019-01-18 12:01:36

标签: maven tycho maven-bom

我有一个多模块项目,其结构如下:

  • 构建
    • 模块
    • module.bom
    • rcp.build
      • module.rcp

这两个构建项目之前和之前都是分开的。现在,我将它们installAtEnddeployAtEnd放在一起了。我这样添加他们:

    <plugin>
      <artifactId>maven-install-plugin</artifactId>
      <version>2.5.2</version>
      <configuration>
        <installAtEnd>true</installAtEnd>
      </configuration>
    </plugin>
    <plugin>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>2.8.2</version>
      <configuration>
        <deployAtEnd>true</deployAtEnd>
      </configuration>
    </plugin>

我没有配置上述以外的插件。无论何时我运行构建,我都会得到以下日志:

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ module.rcp ---
[INFO] Installing group:module.rcp:0.1.6-SNAPSHOT at end
[INFO] 
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ module.rcp ---
[INFO] Deploying group:module.rcp:0.1.6-SNAPSHOT at end
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] modules ............................................. SUCCESS [  3.339 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2019-01-18T12:54:18+01:00
[INFO] ------------------------------------------------------------------------

Maven忘记了安装/部署。

我找到了this bugthis question,这可能是由于Tycho造成的。因此,我将Tycho插件添加到了父 pom.xml 中,该插件什么也没做。然后,我完全删除了RCP模块。还是同样的问题。

现在,BOM仍然具有不是Maven项目“构建”的父级,并且删除它/更改父级可以正确安装和部署构建。但是,由于它是BOM,所以我不能使用“构建”父代。

还有其他方法可以使installAtEnddeployAtEnd在我的项目结构中工作吗?

1 个答案:

答案 0 :(得分:0)

正如khmarbaise所指出的,可以使用以下Maven扩展名:https://github.com/khmarbaise/maven-deployer-extension

请注意,这种方法不适用于Jenkins,因为它support Maven core extensions无效。 (我会说“还”,但JENKINS-30058是4岁的阻止程序错误,因此我想它不会很快得到修复。)如果该版本也应该在Jenkins上运行,似乎没有除了禁用deployAtEndinstallAtEnd或从模块中删除第二个父POM之外,其他选择。


今天,我发现在维护旧项目时无法部署该构建的另一个原因。像这样:

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
        </plugin>

删除<extensions>使项目再次部署。