当前位置: 首页 > 知识库问答 >
问题:

如何强制sonatype nexus 3重新创建maven元数据。maven存储库的xml?

薛泰
2023-03-14

我使用sbt将新工件发布到nexus-maven2存储库(my maven repo)。新的人工制品出现在nexus界面上。另一个sbt项目使用这些人工制品。使用确切要求时;他发现了这些,但当使用一个范围;他获取了可用工件的列表,而该列表从来都不是最新的。

我尝试过的方法/变通方法及其结果:

  • 不工作:使用nexus接口--

注意事项:

  • 使用不同的sbt版本进行测试,这似乎不是sbt问题;参见相关问题
  • nexus 3.4.0-02版
  • 使用BETA API,我可以找到新版本(curl-xget--header'Accept:application/json'http://my-server/nexus/service/siesta/rest/beta/search?repository=my-马文回购

编辑:不完整的列表可以使用wget超文本传输协议://my-server/nexus/repository/my-maven-repo/org/company/mylib_2.12/maven-metadata.xml

EDIT2升级到nexus-3.13并没有解决问题。


共有2个答案

冯俊英
2023-03-14

我通过监控网络流量作弊,结果是:

curl \
    --silent \
    --user $NEXUS_USERNAME:$NEXUS_PASSWORD \
    --header "Content-Type: application/json" \
    --data '{"action":"coreui_Repository","method":"rebuildIndex","data":[$NEXUS_REPOSITORY],"type":"rpc","tid":0}' \
    http://$NEXUS_SERVER/service/extdirect

这确实对我有用。虽然“tid”应该是一个自动递增的数字,但它似乎并不重要。

文建业
2023-03-14
匿名用户

我发现了一个解决方法,使用nexus存储库管理器-3.13中的新API:

  • (使用web界面):创建一个新任务来重新创建所有托管的maven存储库(修复-重建Maven存储库元数据(maven-metadata.xml))
  • curl-v-u用户:通过-X GET超文本传输协议://my-server/nexus/service/rest/v1/任务获取此任务的id
  • curl-v-u用户:通过-X POST超文本传输协议://my-server/nexus/service/rest/v1/任务/c42ab5f5-4bd6-4ed3-b2f1-d061c24a9b90/run来触发所有maven-metadata.xml的再创作

缺点:

  • 需要管理员权限
  • sbt publish之后需要额外的步骤来确保maven元数据。xml是最新的

 类似资料:
  • 问题内容: 我想创建本地Maven存储库。我做了以下步骤: 在中安装了Maven插件 在apache服务器中创建了一个文件夹localrepository,可使用访问 在我的项目中,我提供了 但这并没有解决上的jar 是否需要提供存储库? 问题答案: 使用具有默认配置的Web服务器来设置简单的存储库。关键是目录结构。该文档没有明确提及它,但其结构与本地存储库相同。 要建立一个内部存储库,只需要您有

  • 我们目前没有自己的存储库。因此,当我们使用maven构建时,它将在当前用户的主目录中创建.m2存储库。 现在有两个第三方JAR在Maven Central中找不到。假设其中之一是hasp-srm-api.jar。今天的过程是这样的: a.依赖于hasp-srm-api.jar的项目的pom.xml包含以下行: b.在进行第一次构建之前,我们执行以下命令: 我的问题是这样的--这一步有没有可能自动化

  • 当使用Maven构建我的Spring-boot映像时,我现在在Dockerfile中执行此操作。Maven将下载所有依赖项,然后编译我的文件。这需要相当长的时间。 如何通过docker-compose (Dockerfile)指定构建过程重用我的“windows 10 Home”Maven库?所以,(新)下载的数量是最小的。我的开发环境:我使用Docker quickstart终端,所以使用doc

  • 问题内容: 假设您已经在使用m2eclipse插件,当它没有将依赖关系更新到您的仓库中的最新版本时,您该怎么办? 例如,在命令行上,您只需添加如下标记即可 …强制更新依赖项。Eclipse中是否有类似的东西?(似乎并不总是能够获得最新更新。) 问题答案: 您可以 右键单击 项目,然后 右键单击 Maven >更新项目…,然后选择 强制更新快照/发布 复选框,然后单击确定。

  • 我需要把一个项目交给第三个人。该项目使用Maven进行依赖管理,我们安装了一个Nexus存储库管理器。 我认为使用dependency:go offline plugin/goal like生成包含项目所需的所有依赖项的存储库是很容易的 此命令将按预期创建存储库。我将此存储库复制到目标计算机,并将localRepository(settings.xml)设置到存储库文件夹。 尝试在目标计算机上构建

  • 问题内容: 我正在使用Java 2 ee开发Web应用程序。我也使用hibernate和MySQL。为了还原备份文件,在我的应用程序中的某个点上,我需要删除当前数据库并重新创建它,我按如下操作: 删除并重新创建后,我需要使用默认用户(Spring Security用户)初始化数据库 但在最后一行应用程序抛出此异常 我知道hibernate在启动时会创建表,但是在这种情况下,它在drop / rec