修改 Maven POM 以在本地获取文件

修改 Maven POM 以在本地获取文件

我的 mvn build 正在尝试从在线存储库中获取以下文件。

http://BAD_WEBSITE/repositories/smpsnapshots/org/jboss/aop/jboss-aop/
2.0.0-SNAPSHOT/maven-metadata.xml

但是,该 URL 不再存在。

我已将 maven-metadata.xml 文件保存在本地,但是如何修改我的 POM 文件以在本地获取该文件?

这是我的配置文件指定这个错误的 URL 来查找文件的地方。

快照.pom

     <distributionManagement>    <!-- Declare the release repository to deploy the 
.zip file to -->
         <repository>
           <id>smpreleases</id>
           <name>Releases</name>
           <url>http://BAD_WEBSITE/content/repositories/smpreleases</url>
         </repository>
         <!-- Declare the snapshot repository to deploy the .zip file to -->
         <snapshotRepository>
           <id>smpsnapshots</id>
           <name>Snapshots</name>
           <url>http://BAD_WEBSITE/content/repositories/smpsnapshots</url>
         </snapshotRepository>    
     </distributionManagement>

答案1

任何快速修复都只是暂时的;您将一次又一次地遇到同样的问题,并且很难手动管理这种情况。这个问题(以及相关问题:缺少依赖项、服务器宕机、工作断开)的最简单和最可靠的解决方案都可以通过简单地安装您自己的本地 maven 存储库来轻松解决。(这真的很简单:关系在我看来是最简单的。

一旦完成(就像简单解压缩&启动服务器),然后将所有 maven 项目指向此本地服务器。(它可以位于 localhost 或网络上的另一台服务器上。)假设目前是 nexus,配置为镜像您使用的所有远程存储库。它将为您缓存这些工件,从而加快新项目和/或新服务器上的新构建。现在您也可以推送(部署)到此服务器,以便与其他 maven 项目共享您的工件。在部署到公共存储库(如果您这样做)之前,可以在此处暂存和测试(例如,jenkins/hudson)。

只要记住:

  • 任何非快照工件都只有一个校验和(sha1/md5),并且应始终具有全局唯一性 - 因此无论它们来自本地镜像还是真实远程都无关紧要。(不要多次生成相同的发布工件。)
  • 不要将存储库信息放在你的 pom 中;将所有内容放入settings.xml~/.m2/settings.xml或者使用以下方式运行 mavenmvn -s path/to/my/settings.xml

相关内容