maven - maven-gpg-plugin 的正确执行阶段?

标签 maven

这是一个非常愚蠢的问题,但我在配置 maven-gpg-plugin 时遇到问题在我的 POM 上正常工作。基本上我希望它只在我运行 mvn deploy 时才对 Artifact 进行签名,以免在我运行 clean install 时询问我的密码(解密我的私钥) .任何在 github 上下载我的项目的人都应该能够运行 clean install 似乎是合理的。即使没有我的私钥。

好的,所以我想这样做:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>1.6</version>
        <executions>
                <execution>
                        <id>sign-artifacts</id>
                        <phase>deploy</phase>
                        <goals>
                                <goal>sign</goal>
                        </goals>
                </execution>
        </executions>
</plugin>

但这不起作用,因为 OSS Sonatype 会提示 Artifact 是 未签名 .如果我更换 deploy (应该可以正常工作)阶段与 ìnstall阶段,然后当我运行 mvn deploy 时它会为 OSS Sonatype 正确签名,但是即使我运行 mvn install 它也会运行(我不希望)。我错过了什么?

最佳答案

没有名为 pre-deploy 的阶段在 Maven lifecycle这将在部署之前执行。在MNG-3869中提出,但这被关闭为“不会修复”,并且还在 MNG-4330 中提到.

目前,这是一个 profile 的工作.在以下配置中,maven-gpg-plugin只有在 deploy 时才会执行profile 被激活,例如在命令行上使用 mvn clean deploy -Pdeploy .

这样,当您要部署时,您可以激活此配置文件。但是当用户运行时会出现 mvn clean install ,它不会被激活。

<profiles>
  <profile>
    <id>deploy</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <phase>verify</phase>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

关于maven - maven-gpg-plugin 的正确执行阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824032/

相关文章:

java - Maven 依赖插件不解析插件的手动指定依赖项

java - Spring Boot多模块项目中的Vaadin问题

Eclipse - Tomcat 7 - 发布时出现 java.lang.IndexOutOfBoundsException

java - 简单应用程序停顿/缓慢的 react 流 TCK(技术兼容性套件)测试将无法运行

jakarta-ee - 如何使用 JSF 2.0 和 EL 2.2 为 Tomcat 7 配置 Maven pom?

maven - 在 Gradle 中提取作为依赖项下载的文件

maven - 通过 Maven 运行时,如何将 Tomcat 绑定(bind)到特定接口(interface)?

maven - NoSuchMethodError : DefaultKryoFactory - while trying to run a storm-starter project topology 错误

java - Maven 和 Eclipse 集成的错误

maven - 使用 tycho 就地更新更新站点