为什么要使用 Maven-GPG-Plugin 使用 GnuPG 对项目的工件进行签名?

Why sign a project's artifacts with GnuPG using Maven-GPG-Plugin?

我有两个问题想请教;

首先,我需要知道用 "GnuPG" 签署 java 项目的工件的重要性。

我目前的情况是,我正在考虑发布我的第一个 public java 项目。我正在使用 Maven 构建和管理项目,遇到了 "Maven-GPG-Plugin"。该插件的文档非常模糊,没有描述 为什么 人们应该使用 "GnuPG" 签署工件。我没有使用 GnuPG/Maven-GPG 的经验,所以我想知道使用这个 maven 插件有什么好处?

我的第二个问题是如何在 Eclipse 中的 java 项目中使用这个插件?

是否可以在我构建项目时将以下内容添加到我的 pom.xml 签名项目中?

<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>

如果没有,我将如何在 Eclipse 中使用 maven 正确签署项目?

谢谢!

我没有实际使用 GnuPG 和 Maven 的经验(我从未发布过 Maven 插件),因此我将只回答你问题的第一部分。

The documentation on the plugin is extremely vague and does not describe why one should sign artifacts with "GnuPG". I have no experience with GnuPG/Maven-GPG, so I am wondering what the benefit is of using this maven plugin?

只能用于实现位翻转等意外传输问题的简单哈希和。与那些不同的是,GnuPG 发布加密签名, 能够识别传输问题,但还可以让您验证签名数据的作者。

没有加密签名,就无法知道您正在下载和执行的 code/program 是否真的是您期望的那个。一次又一次丢失或未经验证的加密签名导致带有后门的下载,就在最近 Linux Mint had such an issue.

加密签名并不意味着代码是正确的并且没有(安全)问题,但至少知道您拥有作者发布的相同代码,这会显着降低后门的可能性。