我如何确定如果开发人员Alice创建并将maven包com.example.alice:the-greatest
上传到maven central,并且开发人员Bob将该包作为项目com.example.bob:almost-as-great
中的依赖项包含在内,那么Bob实际上会获得Alice的代码,和邪恶的天才查理不能修改爱丽丝和鲍勃之间的旅程中的代码? (不管怎样查理会如何实际做到这一点;用root @ maven-central贿赂一个拥有众多simoleons的人就可以作为一个例子)
Linux发行版通常通过让Alice对数据包进行数字签名来解决这个问题,要求发行版中的所有包都签名并将签名与包一起分发,以便Bob可以检查他收到的包确实是由Alice签名的并且在运输过程中没有修改。
我对maven相当新,并且如果这是一个愚蠢的问题而道歉,但是我~/.m2
中的大量文件中没有一个看起来像.sig
文件或类似的东西。
(我在#maven IRC上问了这个,但是没有人回复。)
答案 0 :(得分:2)
来自https://maven.apache.org/guides/mini/guide-central-repository-upload.html
为了提高Central Maven存储库的质量,我们需要您 为您的所有工件提供PGP签名
有一个用于验证签名的插件:http://www.simplify4u.org/pgpverify-maven-plugin/index.html
Maven Central也支持HTTPS
What is the correct way of forcing maven to use HTTPS for maven central?