我有一个多模块项目,其结构如下:
两者都建立了之前和之前分开的项目。现在我把它们放在一起installAtEnd
和deployAtEnd
不起作用。我这样添加了它们:
<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 bug和this question,这表明它可能是由于第谷。所以我将Tycho插件添加到父pom.xml中,它没有做任何事情。然后我完全删除了RCP模块。仍然是同样的问题。
现在BOM仍然有一个不是Maven项目“build”的父项,删除它/更改父项使得构建安装和部署正确。但是因为它是BOM,所以我不能使用“构建”父级。
有没有其他方法让installAtEnd
和deployAtEnd
在我的项目结构中工作?
正如khmarbaise指出的那样,可以使用以下Maven扩展:https://github.com/khmarbaise/maven-deployer-extension
请注意,这种方法不适用于Jenkins,因为它不是support Maven core extensions。 (我说“尚未”,但是JENKINS-30058是一个4岁的拦截器错误,所以我想它不会很快修复。)如果构建也应该在Jenkins上运行,那么似乎没有除了禁用deployAtEnd
和installAtEnd
或从模块中删除第二个父POM之外的其他选项。
今天,我发现了在维护旧项目时不进行部署的另一个原因。有这样的事情:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
</plugin>
删除<extensions>
使项目再次部署。