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

Alc*_*sta 5 java maven-2 maven-metadata

我想要做的是强制Maven下载我在本地存储库中的每个工件的'maven-metadata.xml'.

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

为什么我要这样做:

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

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

Ric*_*ler 10

您不希望从公共存储库获取元数据,它将包含给定工件的所有可用版本,而您的存储库将包含某些版本的子集.

值得指出的是,使用存储库管理器确实会更好.以下步骤允许您生成一次工件元数据.但是,如果您的需求发生变化,您将不得不重复此过程或手动更新文件,那么为什么不使用经理呢?Nexus可以独立运行,占用空间非常小.


即使您不打算将Nexus用于存储库管理器,您仍然可以使用它来生成元数据.

  1. 首先安装 Nexus.
  2. 找到nexus工作目录(默认为$ {user.home}/sonatype-work.
  3. 将本地存储库内容复制到nexus-work/releases子目录.
  4. 启动Nexus并在浏览器中连接到Nexus主页(默认为http:// localhost:8081/nexus)
  5. 使用admin帐户登录(密码admin123)
  6. 单击左侧的存储库链接.
  7. 选择Releases存储库,右键单击并单击Rebuild Metadata

片刻之后,您应该为所有工件生成元数据.然后,您可以将它们复制到您需要的位置并卸载Nexus.