在我的maven项目中,我使用pgp插件来签署我的罐子。我只需要在部署到远程仓库时执行此操作,但在安装到本地仓库时则不需要。所以我尝试将阶段设置为部署。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>deploy</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
使用该配置maven首先部署到远程仓库,然后我签署我的罐子......
我读到插件是按POM文件中定义的顺序执行的,所以我尝试在sign插件后配置deploy-plugin,但是没有任何效果
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>deploy</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
如何实现该插件不会在安装时执行,而是在上传工件之前部署?我正在使用maven3。
答案 0 :(得分:2)
首先我建议将maven-gpg-plugin更新为更新的版本,因为此版本1.1是2010年。除此之外我建议保留插件的默认值,这意味着{{ 3}}作为deploy
生命周期和binding of maven-deploy-plugin verify
生命周期阶段,如果您进行集成测试,那么这是不理想的。在这种情况下,定义仅在发布情况下激活的配置文件是有意义的,以防止与集成测试混淆。
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
</configuration>
<executions>
<execution>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
答案 1 :(得分:0)
我看到项目将gpg-plugin
置于verify
阶段。
我可以知道您使用的是什么版本的Maven?我认为同一阶段的插件应按照Maven 2.0.10(或可能更早)之后的定义运行。但由于maven-deploy-plugin
是deploy
阶段的默认绑定,我不清楚订购是否有效