问题标签 [maven-metadata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1375 浏览

maven - 版本-maven-plugin 无法读取 maven-metadata.xml

从今天开始,versions-maven-plugin 突然不起作用。我没有更改任何设置,并且该插件以前可以正常工作。

mvaen 版本mvn -v是:

执行时也会出现同样的问题mvn archetype:generate

注意:我没有任何代理,设置文件是:

0 投票
1 回答
1695 浏览

maven - 如何让工件更新虚拟仓库的 maven-metadata.xml?

长期读者,第一次问...

我有一个独立的网络(无法访问互联网)。它有一个具有虚拟libs-snapshotlibs-release存储库的工件服务器。在libs-snapshot下,有 4 个本地快照存储库。这样做的原因是我们从其他地方(未连接)获得了所有人工仓库的转储,并将其导入到这个网络。但是我们必须在那里修改快照工件的一个子集。所以我们创建了另一个本地快照仓库,称之为mine-snapshot-local (maven 2 repo, set as unique, max artifacts=1?),并将其添加到libs-snapshot的顶部虚拟的。从理论上讲,这将允许我们修改我们需要的少量工件,部署到我们自己的存储库,本地开发人员会选择这些。但是我们仍然可以从其他非连接系统的定期转储中访问 99% 的其他工件。此外,我们可以从其他网络批量导入同时修改的 drop,而无需接触我们的独立网络存储库(mine-snapshot-local)。我想我们正在“分支”神器回购......

我意识到我们可能可以直接部署到一个导入的存储库中,但是下次我们从另一个网络获得转储时,所有那些自定义修改的工件都会消失......所以我真的很想用这个方法来如果可能的话工作。

从我的本地 Eclipse 中,maven 插件将工件显式且无错误地部署到mine-snapshot-local存储库。我看到的问题是虚拟 libs-snapshot 的 maven-metadata.xml 没有更新。该文件的时间戳已更新,如果我使用 Web 浏览器浏览 libs-snapshot/whatever_package,我可以看到我新部署的工件,其时间戳比现有快照更新。但是 maven-metadata.xml 文件仍然包含指向“旧”快照的指针。

maven-metadata.xml 在mine-snapshot-local存储库中成功更新,但好像 artifactory 没有为虚拟存储库正确地将所有元数据文件合并在一起。或者,更有可能的是,我错误地配置了一些东西,导致它以某种方式忽略我们的顶层本地 repo(但为什么快照 jar/pom 仍然出现在那里?)。

我们使用的是 artifactory 2.6.1(并且没有升级选项)。

我尝试了很多事情:将快照存​​储库设置为唯一、非唯一、部署程序、限制快照数量等。这些似乎都没有太大区别。

我认为可能是一个问题的一件事是分配给快照的内部版本号。例如,在导入的仓库中,工件可能有一个一周前的时间戳,但内部版本号为 4355。在我的新仓库中,当我部署时,我有一个更新的时间戳,但内部版本号是 1(或比 4355 小得多的东西)。

我是否通过尝试拥有多个这样的本地快照存储库来找出错误的树?看起来这应该没问题,但也许不是。

0 投票
1 回答
1028 浏览

maven - 使用 nexus 预取 maven-metadata.xml

用maven3配置文件settings.xml

maven-metadata.xml和一个 nexus maven 代理(版本 2.7.2-03)我必须每天早上 00:00 之后等待一堆非常缓慢的文件下载(对于一些应该在几秒钟内传输的 KB 大约需要 5 分钟) . 如何预取这些文件以便将它们下载到我的本地 nexus 实例?

0 投票
2 回答
10557 浏览

maven - 如何防止 Maven 为我的仓库中已有的工件下载 maven-metadata.xml?

我正在使用 Maven 3.2。我的 pom.xml 文件中有这个依赖项(一个 WAR 项目)

每当我为我的 pom 运行任何阶段(例如“mvn install”)时,应用程序总是会尝试下载一些有关依赖项的元数据……</p>

我如何告诉 Maven 停止这样做?我已经将工件缓存在本地 Maven 存储库中。

谢谢, - 戴夫

0 投票
1 回答
2905 浏览

maven - maven-metadata.xml 文件未在 nexus 中正确更新

我已经通过使用 aether API 以编程方式将不同版本的工件上传到 nexus 存储库。我

但是当我从nexus 远程存储库中删除一个工件时,maven-metadata.xml 文件没有正确更新。发布版本仍然指向我已删除的工件。

有什么办法可以更新元数据文件吗?

0 投票
1 回答
828 浏览

java - 如何从 Maven 本地存储库获取工件的时间戳

我需要使用java以编程方式获取存储在maven本地存储库元数据文件(maven-metadata.xml)中的maven工件(使用GAV坐标)的时间戳和构建编号。我知道我可以简单地解析这个文件,但这是一个糟糕的解决方案。有没有人有任何想法?谢谢你。

0 投票
2 回答
3078 浏览

java - 如何以编程方式更新 nexus 中的 maven-metadata 文件

我想以编程方式更新我的关系服务器中的 maven-metadata.xml 文件。有什么办法可以做到这一点吗?我可以为此使用 eclipse aether API 吗?

0 投票
1 回答
2209 浏览

maven - 使用 nexus 部署角色 - 安装工件的元数据时出错 - 授权失败

与授予 Nexus 部署角色的用户一起执行 mvn deploy 时,我收到以下错误消息。

安装工件元数据时出错:部署元数据时出错:授权失败:访问被拒绝:http ://maven.mydomain.com/content/repositories/releases/testing/testapp/maven-metadata.xml

这一定与缺少一些缺少更新 maven-metadata.xml 文件的权限有关,因为当我使用同一用户在存储库上部署工件的第一个版本时,它成功完成(没有 maven-metadata.xml 到更新并成功创建)。此外,当我使用管理员帐户运行 mvn deploy 时,我没有这个问题。

除了 Nexus 部署角色之外,我还需要为我的用户分配哪些额外权限才能更新 maven-metadata.xml?

谢谢

0 投票
4 回答
6789 浏览

maven - 如何使用 maven-publish 和 artifactory-gradle-plugin 生成 maven-metata.xml?

我在 groovy 中编写了一个 Gradle 插件并使用 Gradle 构建它。我有一个本地网络 Artifactory 服务器,我使用 Gradle Artifactory 插件和 Gradle 中的 maven-publish 插件发布结果。我有另一个 Gradle 构建脚本,它依赖于这个插件作为依赖项。如果我用特定版本列出我的依赖项,我就能够让这一切正常工作。我尝试使用 maven 版本范围(例如'[1.0,2.0)'),但这失败了,说它找不到 maven-metadata.xml。我检查了 Artifactory,果然,它不存在。我需要做什么来生成它,最好是在插件的构建过程中?

这是我的自定义 gradle 插件的 build.gradle 文件:

我搜索了 Gradle、Artifactory 和 Maven 文档以了解 maven-metadata.xml 以及如何生成和部署。它是什么是有道理的,我可能可以手动构建一个,但我找不到任何具体解释如何使用 maven-publish 插件或 artifactory-gradle-plugin 在 Gradle 中自动生成它的东西。我不想手动更新文件,因为这会破坏自动化工作,而且我不想切换到 mvn,因为我已经在 Gradle 上投入了很多。

0 投票
2 回答
526 浏览

maven - 从 Maven 到 Artifactory 的经过身份验证的 HEAD 调用

我最近在我的 Artifactory 实例上激活了安全性,这导致了几个问题。一个仍然存在,看起来有点奇怪:

Maven 使用 HTTP HEAD 来检查是否部署了新的 SNAPSHOT。但是,启用安全性后,第一次调用是在没有身份验证标头的情况下完成的,从而导致来自 Artifactory 的 401 响应。

然后,Maven 应该使用身份验证标头执行相同的调用。maven-metadata.xml文件就是这种情况。

但是对于.pom 和 .jar 文件,请求不会被重新尝试,如下面的日志所示:

如前所述,使用用户凭据重新尝试下载 maven-metadata.xml 文件,但myproject-interface-2.0.0-SNAPSHOT.jar没有。

我试图为该服务器启用抢先身份验证,但我找不到 Maven 行为的任何变化:

这仅涉及现有 SNAPSHOT 的更新,因为下载新工件是使用包含身份验证标头的 HTTP GET 完成的(至少重试)。这仍然会阻止正确使用 SNAPSHOT 工件。

我正在使用 Maven 3.2.1 和 Artifactory 3.4.2。