首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >maven存储库镜像

maven存储库镜像
EN

Stack Overflow用户
提问于 2011-02-12 01:45:27
回答 5查看 25.8K关注 0票数 16

通常,我在Maven settings.xml中配置了以下镜像

代码语言:javascript
复制
<mirror>
  <id>internal-repository</id>
  <url>http://build.idaho.local/wtp_repository</url>
  <mirrorOf>*</mirrorOf>
</mirror>

我的理解是,这个镜像阻止了Maven从互联网上下载依赖项,即它只会在这个内部存储库中查找它们。

但是,每当我想要添加一个不在这个内部存储库中的依赖项时,我必须注释掉上面的文本,并将以下内容添加到项目的pom.xml

代码语言:javascript
复制
<repository>
  <id>internal-repository</id>
  <url>http://build.idaho.local/wtp_repository</url>
</repository>

当我进行这些更改时,Maven将检查本地存储库中的依赖项,如果没有找到,则从internet将其下载到本地存储库。一旦我有了我需要的依赖项,我就把我的配置改回来。

有没有一种方法可以获得我想要的行为-总是检查内部存储库,然后是公共(互联网)存储库-而不必将<repository>添加到每个项目的pom.xml

理想情况下,我希望在settings.xml中指定此存储库一次,但似乎您只能在那里配置镜像。

EN

回答 5

Stack Overflow用户

发布于 2011-02-12 20:19:10

您可以尝试将maven配置为仅将镜像用于中央存储库,或者排除由某个id标识的存储库。

代码语言:javascript
复制
<mirror>
    <id>internal-mirror</id>
    <url>http://build.idaho.local/wtp_repository</url>
   <mirrorOf>central</mirrorOf>
</mirror>

代码语言:javascript
复制
<mirror>
    <id>internal-mirror</id>
    <url>http://build.idaho.local/wtp_repository</url>
   <mirrorOf>*,!internal-repository</mirrorOf>
</mirror>

这些示例改编自maven settingsguide to mirror settings

票数 15
EN

Stack Overflow用户

发布于 2014-01-28 19:25:15

这个问题很老了,但不管怎样:

在settings.xml中放置一个使用<repository>元素指定内部存储库的<profile>

代码语言:javascript
复制
...
    <profile>
        <id>devel-repos</id>

        <repositories>
            <repository>
                <id>repo-release</id>
                <url>http://repohost:repoport/path/to/release/repo</url>
            </repository>
            <repository>
                <id>repo-snapshot</id>
                <url>http://repohost:repoport/path/to/snapshot/repo</url>
            </repository>
        </repositories>
    </profile>
...

然后将上面的配置文件设置为<activeProfile>。这将为每个maven调用激活配置文件。

代码语言:javascript
复制
...
<activeProfiles>
    <activeProfile>devel-repos</activeProfile>
</activeProfiles>
...

这并没有避免多个存储库定义,但它给了您最重要的东西:一切都集中在settings.xml中,并且您的pom.xml是干净的(和可移植的)。

票数 2
EN

Stack Overflow用户

发布于 2011-02-13 10:50:09

看起来您可能没有正确配置或使用镜像。

理想情况下,您指定的镜像应该是一个repository manager,它应该透明地从internet中的各种存储库下载所请求的依赖项,并对其进行缓存,从而允许从镜像进行后续下载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4972288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档