将源上传到 nexus 使快照依赖项对 maven 不可用

Uploading sources to nexus makes snapshot dependencies unavailable to maven

当我们对存储库 mvn install deploy 进行 ${repository-jars} 时,其他人可以按预期使用这些依赖项。

当我们 之后 将源上传到另一个存储库时 ${repository-sources} 不再正确解析依赖项。

mvn deploy:deploy-file 
   -DgroupId=foo 
   -DartifactId=bar 
   -Dversion=1.0-SNAPSHOT 
   -Dfile=target/bar-sources.jar 
   -Dpackaging=jar 
   -Durl=${url} 
   -Dclassifier=sources 
   -DrepositoryId=${repository-sources}

nexus 中的一切看起来都是正确的,两个存储库都可以正常使用 Repository Group

假设是 Maven 尝试使用最新上传的工件并最终下载 sources jar 而不是以某种方式忽略 classes 修饰符。这是通过首先上传源代码验证的,然后 然后 做一个 maven deploy 它按预期工作的地方。

允许我们在部署后运行的单独作业中上传源的正确方法是什么?

在检查中,Maven 正在创建两个不同的快照,当您尝试获取最新快照时,它会从您设置的组中获取最新的快照(即源)。

您实际上可以尝试将它们放在同一个存储库中,然后使用 Content Selectors 将它们分开。这是我们来自 Nexus Repository 2 的更新版本的 Repo Targets。