【问题标题】:How to ignore errors of Apache Maven GPG Plugin如何忽略 Apache Maven GPG 插件的错误
【发布时间】:2017-07-30 16:29:10
【问题描述】:

我正在使用 Apache Maven GPG 插件 maven-gpg-plugin 生成所需的签名,以通过 OSSRH 在 Maven Central 中发布。我在 pom.xml 中的插件定义如下,我的 OSSRH 凭据在 Maven conf/settings.xml 中,一切正常。但是,当另一个开发人员尝试mvn install 时,他失败了,因为他没有安装 GPG。除了开发人员进行部署之外,我想避免安装 GPG,可能通过在构建期间忽略 maven-gpg-plugin 错误或通过任何其他方式,这样我就不需要两个 pom.xml 一个与插件-in 和另一个没有它。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-gpg-plugin</artifactId>
    <version>1.6</version>
    <executions>
      <execution>
        <id>sign-artifacts</id>
        <phase>verify</phase>
        <goals>
          <goal>sign</goal>
        </goals>
        <configuration>
          <keyname>${gpg.keyname}</keyname>
          <passphraseServerId>${gpg.passphrase}</passphraseServerId>
        </configuration>
      </execution>
    </executions>
  </plugin>

【问题讨论】:

    标签: maven maven-plugin maven-central gpg-signature maven-gpg-plugin


    【解决方案1】:

    您可以将配置文件添加到您的 pom 并在其中定义 maven-gpg-plugin 的执行:

    <project>
      ...
      <profiles>
        <profile>
          <id>sign</id>
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
                <executions>
                  <execution>
                    <id>sign-artifacts</id>
                    <phase>verify</phase>
                    <goals>
                      <goal>sign</goal>
                    </goals>
                    <configuration>
                      <keyname>${gpg.keyname}</keyname>
                      <passphraseServerId>${gpg.passphrase}</passphraseServerId>
                    </configuration>
                  </execution>
                </executions>
              </plugin>
            </plugins>
          </build>
        </profile>
      </profiles>
    </project>
    

    只有当配置文件处于活动状态时,该插件才会被添加到构建过程中。您可以像这样调用 Maven 来激活配置文件:

    mvn install -P sign
    

    除了手动激活配置文件外,还可以根据环境变量或特定文件的存在等条件自动激活配置文件。您可以在Maven introduction on profiles 中找到更多相关信息。

    在您的情况下,一个选项可能是在找到 GPG 特定文件时启用配置文件:

    <profile>
      <id>sign</id>
      <activation>
        <file>
          <exists>${user.home}/.gnupg/secring.gpg</exists>
        </file>
      </activation>
      ...
    </profile>
    

    我没有测试上面的代码,你需要检查的实际文件可能会根据你使用的 GPG 版本和你的系统环境而有所不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多