问题标签 [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 投票
12 回答
640713 浏览

java - 如何告诉 Maven 使用最新版本的依赖项?

在 Maven 中,依赖项通常是这样设置的:

现在,如果您正在使用频繁发布的库,那么不断更新 <version> 标记可能会有些烦人。有什么方法可以告诉 Maven 始终使用最新的可用版本(来自存储库)?

0 投票
1 回答
3375 浏览

plugins - Maven2 如何知道在哪里可以找到插件?

我正在使用 Maven2,但似乎在我的存储库中找不到任何插件。我收到类似的错误

在存储库中找不到“org.apache.maven.plugins”的存储库元数据:myrepo

其中 myrepo 是我的存储库的名称。

我的问题是 Maven 如何知道在哪里可以找到插件?我的错误中有对元数据的引用,预计哪些元数据在哪里以及必须采用什么格式?到目前为止,我在寻找文档时运气不佳...

(我对使用中央回购的简单答案不感兴趣,我想知道为什么 myrepo 不起作用。)

谢谢!

0 投票
4 回答
21609 浏览

java - 如何强制 Maven 从中央存储库下载 maven-metadata.xml?

我想要做的是强制 Maven 为我在本地存储库中拥有的每个工件下载“maven-metadata.xml”。

默认的 Maven 行为是仅从远程存储库下载元数据(请参阅此问题)。

为什么我想这样做:

目前我有一个在构建机器上运行的远程存储库。远程存储库是指位于构建机器中的目录,其中包含构建 Maven 项目所需的所有依赖项。请注意,我没有使用 Nexus 之类的存储库管理器,存储库只是我已上传到构建机器的本地存储库的副本。

但是,由于我的本地存储库不包含“maven-metadata.xml”文件,因此构建机器存储库中也缺少这些元数据文件。如果我可以从中央存储库中检索元数据文件,那么就可以将工作的远程存储库上传到我的构建机器。

0 投票
4 回答
14323 浏览

java - 查找特定插件的 Maven 存储库中可用的版本列表?

鉴于我的 pom.xml 中的以下存储库 URL,我如何确定存储库中有哪些最新版本的 spring 和 hibernate 可用? http://repo1.maven.org/maven2

0 投票
1 回答
1034 浏览

maven - lastUpdated 未显示在 maven-metadata.xml 中

我有一个工件的 maven-metadata.xml 没有显示的问题。这是我正在处理的环境:Apache Archiva、Ivy、ant。

问题:当我通过 Web UI 表单部署工件时,我能够看到 maven-metadata.xml 中的所有属性。

但是,当我通过命令提示符(ant publish-latest -Dversion=1.0.3)通过 ivy 部署工件时,工件会随着最新更改正常更新,但工件的 maven-metadata.xml 缺少带有最新时间戳的属性。

这是我的 ant 发布的最新目标:

请在这个问题上帮助我,我在获取最新工件的过程中遇到了这一点。

0 投票
2 回答
1814 浏览

maven-2 - maven 的 buildNumber 元数据如何在多个构建代理之间变得不一致?

我们最近在我们的构建环境中添加了第二台构建机器,并且开始遇到非常奇怪的偶尔构建失败。

我有两个单独的 Maven 构建机器AB,每个都运行 Maven 2.2.1 并与共享的 Nexus 1.5.0 存储库管理器通信。我的问题是,在B上构建偶尔会失败,因为它拒绝下载以前由A构建并上传到 Nexus的常见依赖项“ acme-1.0.0-SNAPSHOT ”的较新版本。

查看两台机器上的本地存储库,我注意到存储库元数据中有一些奇怪之处。

机器A的 acme\1.0.0-SNAPSHOT\maven-metadata-nexus.xml:

机器B的 acme\1.0.0-SNAPSHOT\maven-metadata-nexus.xml:

在 Nexus 的 acme/1.0.0-SNAPSHOT/maven-metadata.xml 中:

如果我正确解释元数据文件(在线文档很少),机器B似乎认为它具有更新版本的acme依赖项(基于 buildNumber),尽管机器A上次构建它是在机器B 6 天后完成的(基于时间戳)。Nexus 似乎也不知道普遍正确的 buildNumber。

这种情况怎么可能出现?我可以做些什么来防止我的构建由于元数据不一致而失败?你有过类似的经历吗?

重要笔记:

  • 两台构建机器都有 settings.xml 文件,其中 updatePolicy 是“始终”。
  • Nexus 确实具有由A构建的更新版本的acmeB只是拒绝下载它。
  • AB是唯一上传到 Nexus 的机器。
  • 两台服务器共享相同的系统时间。
  • 所有涉及的进程都具有对元数据文件的写入权限,以便可以根据需要对其进行更新。
  • 我找不到任何描述此行为的开放 Maven 或 Nexus 问题。
  • 我们的 CI 服务器 (Atlassian Bamboo) 防止构建相同的工件同时发生,因此在上传到 Nexus 时出现一些竞争条件是不太可能的。
0 投票
1 回答
7253 浏览

maven-3 - 迁移到 Maven 3.0.1 - 部署失败并出现错误:500 only for top most maven-metadata.xml

我正在测试从 2.2.1 迁移到 Maven 3.0.1。

除部署阶段外,所有阶段都运行良好。

当我第一次使用 2.2.1 运行时,一切运行良好。

然后我切换到 3.0.1 并运行相同的命令,除了最上面的 maven-metadata.xml 文件之外一切正常。当 maven 尝试上传该文件时,我收到一个 http 错误:500。

如果您在下面的日志中注意到:

这失败了:

但这成功了:

令我惊讶的是,我没有找到关于这个问题的太多信息。话又说回来,maven 3 只推出了大约 8 个月。

我发现这两个我认为与我无关的问题:_http://maven.40175.n5.nabble.com/Created-MSITE-531-Site-deployment-fails-on-googlecode-repository-unnecessary- WebDAV 中的路径元素--td3307584.html

_http://maven.40175.n5.nabble.com/Moved-WAGON-319-Site-deployment-fails-on-googlecode-repository-unnecessary-path-element-in-WebDAV-UR-td3308501.html

我还尝试从“工件”中完全删除旧工件并再次部署。

我希望有人可以在这里为我指明正确的方向。

我在下面粘贴相关信息。

提前致谢。

这是控制台输出的相关部分:

这是我使用 -X 开关运行它时的堆栈跟踪:

0 投票
1 回答
20283 浏览

maven - 部署到 nexus 时未更新 maven-metadata.xml

我正在使用 Apache Maven 3.0 Nexus 开源版,版本:1.8.0.1

这是我 pom.xml 的一部分

这是一个非常简单的项目。当我做

一切正常:

现在我下载http://myrepo/nexus/content/repositories/.../maven-metadata.xml 它看起来像这样:

我的最新和刚刚发布的版本没有标记为“最新”和“发布”。

现在我在 Nexus WebUI 中执行“重建元数据”。在此之后我再次下载元数据。现在看起来像这样

这看起来像 nexus 或 maven 中的错误?有人对此有解决方案吗?

0 投票
1 回答
761 浏览

maven - 在 Nexus 的 maven-matadata.xml 中发布版本错误

我的 maven-metadata.xml 在 Nexus 中没有正确的 RELEASE 版本。我正在使用 Nexus 1.8.0.1。我们使用 maven-release-plugin 部署到 Nexus,日志表明它更新了元数据。我们还看到正确的版本被添加到版本集中。只是<release>版本不正确。

我尝试使用 Nexus UI 重新创建文件,但没有任何乐趣。

干杯,

杰夫

0 投票
1 回答
721 浏览

maven - 在 Maven 3 依赖项中:resolve -U 不断重新下载相同的 maven-metadata.xml

自从从 Maven 2 迁移到 Maven 3 后,我们遇到了一个问题:如果我们使用“-U”标志构建,与 Maven 2 相比,检查工件更新需要更长的时间。我不确定 Maven 2 做了什么这种情况下,但似乎 Maven 一遍又一遍地下载所有 maven-metadata.xml。

我正在使用以下 Maven 版本:

我已重定向'mvn dependency:resolve -U'的输出并上传到http://lenni.info/dependency_resolve.log

在其中您可以看到我正在构建的项目总共有 142 个依赖项(包括传递的依赖项),但日志有 6400 行。这似乎很多。

一个例子:如果你用

您可以看到 mtcommons 的 maven-metadata.xml(一个内部项目,几乎被我们所有的内部工件引用)被下载了 714 次。现在,我们确实有 3 个存储库(由 Nexus 管理),我知道必须检查所有存储库,但 714 次似乎太频繁了,不是吗?看起来 Maven3 即使在单个构建中也不会缓存元数据,导致它多次重新下载相同的文件。

我真的不敢相信这是 Maven 3 默认行为,但怀疑我们的配置错误,也可能在 Nexus 中。然而,经过密集搜索和大量谷歌搜索后,我无计可施。

如何让 Maven 每次构建只下载一次元数据文件?