部署原型工件时,Nexus Maven 原型存储库未更新

Posted

技术标签:

【中文标题】部署原型工件时,Nexus Maven 原型存储库未更新【英文标题】:Nexus Maven Archetype repository is not updated when deploying an archetype artefact 【发布时间】:2012-02-12 08:44:32 【问题描述】:

为我们的团队生成应用程序模板而开发的自定义 Maven 原型未被 Nexus 1.9.2 识别为有效原型。

运行命令mvn clean deploy在本地正确安装archetype(即更新本地~/.m2/archetype-catalog.xml),将其上传到指定的Nexus存储库,但对应的Nexus archetype-catalog.xml不是更新了。

已开发原型的 groupId 为fielden。运行mvn archetype:generate -Dfilter=fielden: 仅显示本地部署的工件。

由于原型的 SNAPHOT 版本,它被部署到在 distributionManagement POM 设置中指定的 Snapshot Nexus 存储库(可以通过 Nexus Web 界面和手动检查服务器上的文件来观察部署到 Nexus 的适当工件)。然而,运行mvn archetype:generate -Dfilter=fielden: -DarchetypeCatalog=Snapshots 显示没有可供选择的人工制品。

一些附加信息:

客户端和服务器上的 Maven 版本均为 2.2.1。 原型项目的 POM 包含有效的打包值:<packaging>maven-archetype</packaging>。 生成的 jar 预期用于 Maven Archetype 结构(即目录 archetype-resourcesMETA-INF)。 Nexus:核心插件:Maven Archetype 目录存在于插件控制台中,状态为已激活。

这是mvn clean deploy 命令输出的尾部,可能是相关的:

[INFO] [安装:安装执行:默认安装]

[INFO] 安装 /home/oles/workspace-template/tg-app-archetype/target/tg-application-archetype-1.0-SNAPSHOT.jar 到 /home/oles/.m2/repository/fielden/tg- application-archetype/1.0-SNAPSHOT/tg-application-archetype-1.0-SNAPSHOT.jar

[INFO] [archetype:update-local-catalog execution: default-update-local-catalog]

[INFO] [deploy:deploy execution: default-deploy]

[INFO] 从快照中检索以前的内部版本号 上传:http://server-name/nexus/content/repositories/snapshots/fielden/tg-application-archetype/1.0-SNAPSHOT/tg-application-archetype-1.0-20120117.140536-2.jar 1358K 上传 (tg-application-archetype-1.0-20120117.140536-2.jar)

[INFO] 从快照中检索以前的元数据

[INFO] 上传存储库元数据:'artifact fielden:tg-application-archetype'

[INFO] 上传 tg-application-archetype 1.0-20120117.140536-2 的项目信息

[INFO] 从快照中检索以前的元数据

[INFO] 上传存储库元数据:'snapshot fielden:tg-application-archetype:1.0-SNAPSHOT'

[信息] --------------------------------------------- ----------------------------------------

[INFO] 构建成功

[信息] --------------------------------------------- ----------------------------------------

[INFO] 总时间:11 秒

[INFO] 完成时间:2012 年 1 月 17 日星期二 16:05:39 EET

[INFO] 最终内存:32M/294M

[信息] --------------------------------------------- ----------------------------------------

我已经查看了类似的问题,并无济于事地寻找可行的解决方案。非常感谢任何可能有助于解决上述原型部署问题的帮助。

【问题讨论】:

如果您在没有过滤器的情况下运行 mvn generate:archetype,您的原型是否会出现在长列表中? 是的——显示为本地。 这里有同样的问题,但还没有解决方案……你找到什么了吗? @Séb 不幸的是,没有——尝试了许多不同的方法(除了重新安装 Nexus)都无济于事。计划迁移到新服务器并希望那里能正常工作(: 你能用最新的 Nexus 版本试试这个,如果它仍然不能工作,请告诉我。据我所知,Maven 版本也存在一些问题。确保使用 3.0.4+ 和新版本的部署插件。 【参考方案1】:

是的,这有点旧,但可能与a problem of mine有关:

希望对您有所帮助。

【讨论】:

以上是关于部署原型工件时,Nexus Maven 原型存储库未更新的主要内容,如果未能解决你的问题,请参考以下文章

当它有父pom时如何正确地将工件部署到nexus?

是否可以使用 Maven 1 部署到 Nexus 存储库?

配置 Maven 或 Nexus 以在静态 URL 链接主干工件

在 nexus 中存储 maven 工件的最佳实践

使用 Maven 在 Nexus 中自动上传工件

使 Sonatype Nexus 存储库可公开访问,以便能够下载带有 maven Central 等 URL 的工件