27

是否可以在 pom.xml 中指定镜像?例如,我想做一个我自己的回购,比如中央回购。我想禁用对中央存储库的请求,并向我自己的存储库发出所有请求。是否可以在 Maven 中禁用默认中央仓库?

4

3 回答 3

15

pom 中,不可能定义镜像条目,而且如果可以定义镜像(事实并非如此),那将是不好的做法。与pom 中的存储库定义类似(这是可能的,但被认为是不好的做法)。

这种事情的最佳解决方案是安装一个存储库管理器,它就像一个“自己的中央存储库”。

于 2012-08-22T15:00:38.613 回答
9

镜像不能在 pom.xml 中。但它可以添加到您的项目文件中。

使用 maven 3.3.1+ 时,您可以使用核心扩展project-settings-extension来加载项目设置,并将项目特定的镜像放入${basedir}/.mvn/settings.xml您的项目中。

${basedir}/.mvn/extensions.xml

    <extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
      <extension>
        <groupId>com.github.gzm55.maven</groupId>
        <artifactId>project-settings-extension</artifactId>
        <version>0.1.1</version>
      </extension>
    </extensions>

${basedir}/.mvn/settings.xml

<settings>
  <mirrors>
    <mirror>
      <id>id</id>
      <url>https://url-for-this-project/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>
于 2018-04-11T17:59:26.083 回答
3

那是没有意义的。POM 文件不仅用于构建项目,还可以上传到共享存储库。现在想象你的 POM 最终出现在 Maven Central 上。当我将您的项目作为依赖项添加到我的项目之一时会发生什么?

更好的解决方案是使用Maven 代理服务器

于 2012-08-22T15:14:54.157 回答