Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
Maven 从Nexus自动下载是否是本地的现有依赖项?_Maven_Jenkins_Nexus - Fatal编程技术网

Maven 从Nexus自动下载是否是本地的现有依赖项?

Maven 从Nexus自动下载是否是本地的现有依赖项?,maven,jenkins,nexus,Maven,Jenkins,Nexus,我有两个项目(父母和儿子)。子项目依赖于父项目。父项目有一个永久版本(父项目作为发行版在Nexus中),我在Jenkins有一份工作,工作很好 如果我在父项中进行了更改,并在Nexus中重新部署(相同的组、工件、版本),则在Jenkins作业期间会检测到存在“新依赖项”,或者我应该手动删除旧依赖项以获取新依赖项(此新依赖项是修改后的父项)。在maven中,您不应该重新部署已发布的工件 发布1.0后,需要转到1.1-SNAPSHOT,然后再转到1.1 从技术上讲,您可以删除1.0并重新部署它,但您

我有两个项目(父母和儿子)。子项目依赖于父项目。父项目有一个永久版本(父项目作为发行版在Nexus中),我在Jenkins有一份工作,工作很好


如果我在父项中进行了更改,并在Nexus中重新部署(相同的组、工件、版本),则在Jenkins作业期间会检测到存在“新依赖项”,或者我应该手动删除旧依赖项以获取新依赖项(此新依赖项是修改后的父项)。

在maven中,您不应该重新部署已发布的工件
发布1.0后,需要转到1.1-SNAPSHOT,然后再转到1.1

从技术上讲,您可以删除1.0并重新部署它,但您会搞坏您的客户端,因为客户端不会下载新的1.0,因为它们在本地已经有旧的1.0

现在,如果没有人从nexus下载1.0,那么您可以将其删除并重新部署,而不会出现问题


因此,简单的回答是,在部署发布版本后增加版本

我知道(可能我解释错了)。当我第二次运行Jenkins作业时,现在在Nexus中,父内容已更改,但版本相同。jenkins作业与新父级或旧父级一起工作(它们的版本始终相同),您将使用旧版本。您可能已配置为清理作业的本地存储库,这可能会解决问题。但这完全违背了Maven发布的理念。出于这种目的,快照是存在的。@IkerAguayo你知道什么?你应该在发布后增加版本?如果是这样的话,如果您知道不推荐,为什么需要重新部署相同的版本?这样我们就可以提供一个更准确的答案,或者提出一个解决问题的替代方法。我知道这与Maven的想法背道而驰。但关于我的问题,它将被用于旧版本。是否有一种方法可以在每个构建中清理作业中的本地存储库?是的,您可以告诉jenkins在每个构建中使用新的本地repo,但同样,这违反了标准实践,并且会影响其他使用正常repo的客户端(非jenkins客户端)。在jenkins配置中查找
使用私有Maven存储库
,但是如果您发现自己这样做了,那么更好的解决方案是使用“RC-x”限定符。说真的,不要重新部署发布工件