Nexus / Maven - 缺少...的 POM,没有可用的依赖信息
Nexus / Maven - The POM for ... is missing, no dependency information available
我在构建我的 Maven java 项目时遇到了诸如 "The POM for ... is missing, no dependency information available" 之类的一堆警告。
工件存储在我们公司托管的 Nexus 服务器中。在我将 Nexus 中的任务安排到 "Remove Releases From Repository" 以清理它并仅维护最近的 2 个版本后,问题开始了。
因此,我收到了有关已删除的旧版本的警告:
[WARNING] The POM for xpto:jar:jar:8.16.1 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.17.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.18.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.19.0 is missing, no dependency information available
一旦我有很多组件项目并且发布是常量,当编译一些使用这些组件的项目时,我会收到很多这样的警告。
你们有没有提出一些方法来避免这些警告或在客户端执行一些可以重新解析或重新索引依赖项的目标?
此致,
Sometimes Releases are Disposable
如上文所述,根据您的业务,您可能不需要将旧版本存储在自己的存储库中。我也在这个场景中。
例如,为了仅维护我的组件项目的最后 2 个版本,应遵循一些步骤以避免 maven [警告] 消息:
1. 从存储库中删除版本
您应该向您的存储库添加一个任务来维护唯一的 n 发布项目。这可以通过以下方式完成:
- 转到 Sonatype Nexus > 管理 > 计划任务 > 添加
- 将"Task Type"设置为"Remove Releases From Repository"
- 设置您自己的参数(电子邮件、定期等)
2.重建maven元数据文件
这个问题的"ace in the hole"是重建maven元数据文件(maven-metadata.xml),一旦他们要维护旧版本信息直到他们要重建.这可以通过以下方式完成:
- 转到 Sonatype Nexus > 管理 > 计划任务 > 添加
- 将"Task Type"设置为"Rebuild Maven Metadata Files"
- 设置您自己的参数(电子邮件、定期等)
- 注意:此任务必须运行在"Remove Releases From Repository"
之后
3.本地存储库
现在,本地存储库需要知道元数据文件已更新。这可以通过参数来完成:
mvn -U:
-U,--update-snapshots 强制检查更新
远程发布和快照
例如:
mvn -U 清理包
参考资料
- Can I delete releases from Nexus after they have been published?
- What do the scheduled tasks in Nexus do, and how often should I run them?
- How to force maven to update local repo
检查您的 settings.xml
,即在 bash 中导出:
export MVN_SETTINGS=~/.m2/settings.xml
当您无法从 Internet 下载依赖项时,通常会出现此警告。
我在构建我的 Maven java 项目时遇到了诸如 "The POM for ... is missing, no dependency information available" 之类的一堆警告。
工件存储在我们公司托管的 Nexus 服务器中。在我将 Nexus 中的任务安排到 "Remove Releases From Repository" 以清理它并仅维护最近的 2 个版本后,问题开始了。
因此,我收到了有关已删除的旧版本的警告:
[WARNING] The POM for xpto:jar:jar:8.16.1 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.17.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.18.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.19.0 is missing, no dependency information available
一旦我有很多组件项目并且发布是常量,当编译一些使用这些组件的项目时,我会收到很多这样的警告。
你们有没有提出一些方法来避免这些警告或在客户端执行一些可以重新解析或重新索引依赖项的目标?
此致,
Sometimes Releases are Disposable
如上文所述,根据您的业务,您可能不需要将旧版本存储在自己的存储库中。我也在这个场景中。
例如,为了仅维护我的组件项目的最后 2 个版本,应遵循一些步骤以避免 maven [警告] 消息:
1. 从存储库中删除版本
您应该向您的存储库添加一个任务来维护唯一的 n 发布项目。这可以通过以下方式完成:
- 转到 Sonatype Nexus > 管理 > 计划任务 > 添加
- 将"Task Type"设置为"Remove Releases From Repository"
- 设置您自己的参数(电子邮件、定期等)
2.重建maven元数据文件
这个问题的"ace in the hole"是重建maven元数据文件(maven-metadata.xml),一旦他们要维护旧版本信息直到他们要重建.这可以通过以下方式完成:
- 转到 Sonatype Nexus > 管理 > 计划任务 > 添加
- 将"Task Type"设置为"Rebuild Maven Metadata Files"
- 设置您自己的参数(电子邮件、定期等)
- 注意:此任务必须运行在"Remove Releases From Repository" 之后
3.本地存储库
现在,本地存储库需要知道元数据文件已更新。这可以通过参数来完成:
mvn -U:
-U,--update-snapshots 强制检查更新 远程发布和快照
例如:
mvn -U 清理包
参考资料
- Can I delete releases from Nexus after they have been published?
- What do the scheduled tasks in Nexus do, and how often should I run them?
- How to force maven to update local repo
检查您的 settings.xml
,即在 bash 中导出:
export MVN_SETTINGS=~/.m2/settings.xml
当您无法从 Internet 下载依赖项时,通常会出现此警告。