Security Maven可以在没有我授权的情况下将我的源代码上传到Central吗?
从中,我了解到Maven使用一个中心位置来保存用于解决依赖性问题的开放源代码。这是一个非常方便的功能。然而,如果我使用Maven来构建某个项目,它会在没有我授权的情况下将我的源代码上传到互联网上的某个地方吗 上次我试图用组IDSecurity Maven可以在没有我授权的情况下将我的源代码上传到Central吗?,security,maven,repository,Security,Maven,Repository,从中,我了解到Maven使用一个中心位置来保存用于解决依赖性问题的开放源代码。这是一个非常方便的功能。然而,如果我使用Maven来构建某个项目,它会在没有我授权的情况下将我的源代码上传到互联网上的某个地方吗 上次我试图用组IDcom.notarealgroup构建类似于my secret service.jar的东西时,执行mvn install得到如下输出: Downloading: https://repository.jboss.org/nexus/content/groups/publi
com.notarealgroup
构建类似于my secret service.jar
的东西时,执行mvn install
得到如下输出:
Downloading: https://repository.jboss.org/nexus/content/groups/public/com/notarealgroup/my-secret-service/1.0/my-secret-service-1.0.jar
这让我很困惑:这个
my-secret-service-1.0.jar
?它不应该在那里(实际上也不在那里)。当您引用一个库时,maven会在本地repo中搜索它,然后默认情况下,它会搜索公共存储库。它没有上传你的jar,但将jar的名称传递给在线回购仍然存在安全问题。如果你非常偏执(我现在的雇主就是这么偏执),那么你想停止这种行为,为此你必须阅读maven文档。但是,请放心,除非你选择将你的东西部署到一个公共的maven回购协议中,这无论如何都不是一件小事,它不会偶然发生。不,maven不会这么做,因为任何合理的“授权”定义。
要将您的工件上载到例如Central,您需要:
- 在distributionManagement中将Central设置为您的上载存储库(在中没有默认设置)
- 您的环境为Central设置了正确的上载授权(在settings.xml或其他文件中)
- 您可以显式或隐式地启动部署,可以说最简单的方法是运行
阶段deploy
mvn安装时。在最坏的情况下,您需要将一个精心编制的项目设置为任何“不想要的”事件的父项目如有疑问,请检查您的
在这两种情况下,仅仅对任何人来说,将任何工件上传到Central都不是那么容易的——如果是的话,我们将在恶意构建的工件中达到这里
正如工程师Dollery在他的回答中提到的,您看到的消息是Maven只是试图下载一个依赖项,它恰好由您的自定义坐标(groupId
,artifactId
)标识。这就引出了你的最后一个问题,我将用另一个问题来回答——为什么它不在那里?毕竟,这只是一个人工制品。而且上面只写了下载
:换句话说尝试下载
。如果它成功了,它还会说下载了
@robertschlote:没错,因此“试图下载”:。