Maven Package 如何使用 GPG 签名

在将 Maven 的包上传到中央仓库并且创建发行版之前需要对包进行 GPG 签名。

如果你使用的是 Window 操作系统,请参考: 如何在 Windows 上创建一个新的 GPG key 页面中的内容来对 GPG key 生成器进行安装,并且创建一个 key。

需要注意的时候,你创建的 Key 还要上传到 Key 的公钥仓库中,具体的办法请参考文章:GPG 使用 Maven 签名后发送到中央仓库提示 Upload your public key and try the operation 中的内容。

当你完成所有操作后,你就可以对你的 POM 文件进行修改了。

对 POM 文件进行修改

对 POM 进行有几个地方需要进行修改,有些地方的修改是一次性的。

我们假设你现在的 POM 不具有任何部署条件。

我们也是参考了官方的配置文件说明:Apache Maven - The Central Repository Documentation

首先你的版本号是不能包含有 -SNAPSHOT 这个关键字的。

可以使用下面的命令:

mvn versions:set -DnewVersion=0.0.2

这个 mvn 的命令将会搜索你系统中的版本,并且将版本进行重命名并且统一。

从控制台的输出中,我们已经看到版本号进行了调整。

添加 maven-gpg-plugin 插件

在 pom 文件中,添加 maven-gpg-plugin 插件到插件列表中。

这个插件的位置是位于 build 下面的。

具体内容入下,你可以不需要对任何内容进行修改,如果你有高版本的话,也可以使用高版本。

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

添加 .m2 目录下的 settings.xml

需要添加的内容如下:

<settings>
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.executable>gpg2</gpg.executable>
        <gpg.passphrase>the_pass_phrase</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
</settings>

需要注意的是可以执行的文件,在上面我们使用了 gpg2,如果你的操作系统中没有这个的话,你有可能会使用 gpg,这个与你的安装有关。

可以在 Windows 下运行 cmd,以确定 gpg 被添加到你的系统中了。

秘钥部分为最开始你创建的秘钥,这个是在 Kleopatra 中可以找到的。

根据你需要安装的秘钥,拷贝上面的 Key-ID 填到这里即可。

完成所有上面的配置后运行命令:

mvn clean deploy

然后等待服务器的反馈结果。

一般来说需要几个小时后你的库才会被全世界都看到。

是不是很激动呀。

鼓励所有有条件的公司和个人都可以这样将开源项目上传到中央 Maven 仓库中。