Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Maven可以在没有我授权的情况下将我的源代码上传到Central吗?_Security_Maven_Repository - Fatal编程技术网

Security Maven可以在没有我授权的情况下将我的源代码上传到Central吗?

Security 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

从中,我了解到Maven使用一个中心位置来保存用于解决依赖性问题的开放源代码。这是一个非常方便的功能。然而,如果我使用Maven来构建某个项目,它会在没有我授权的情况下将我的源代码上传到互联网上的某个地方吗

上次我试图用组ID
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
    阶段
这些需求都不能从Maven的默认配置中派生出来,尤其是在运行
mvn安装时。在最坏的情况下,您需要将一个精心编制的项目设置为任何“不想要的”事件的父项目如有疑问,请检查您的

在这两种情况下,仅仅对任何人来说,将任何工件上传到Central都不是那么容易的——如果是的话,我们将在恶意构建的工件中达到这里


正如工程师Dollery在他的回答中提到的,您看到的消息是Maven只是试图下载一个依赖项,它恰好由您的自定义坐标(
groupId
artifactId
)标识。这就引出了你的最后一个问题,我将用另一个问题来回答——为什么它不在那里?毕竟,这只是一个人工制品。

而且上面只写了
下载
:换句话说
尝试下载
。如果它成功了,它还会说
下载了
@robertschlote:没错,因此“试图下载”:。