首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven - mirror取决于项目

maven - mirror取决于项目
EN

Stack Overflow用户
提问于 2013-06-20 12:08:19
回答 3查看 594关注 0票数 3

在settings.xml中,我有一个maven中心设置的镜像:

代码语言:javascript
复制
<mirrors>
  <mirror>
    <id>artifactory-other</id>
    <mirrorOf>*</mirrorOf>
    <url>http://some.internal.site/artifactory/repo</url>
    <name>Artifactory</name>
  </mirror>
</mirrors>

但此服务器只能从内部网络访问。当我在家里修补一些副业时,我需要访问真正的存储库。现在我只是注释掉这个镜像,但它很麻烦。

我怎么才能让它自动进行呢?是否可以定义一个带有独立镜像的配置文件,并根据项目路径自动激活?有什么简单的解决方案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-24 18:21:01

解决方案不是使用mirror-any,而是对dependencies pom cleanups使用特定的存储库声明。这样,你就可以像使用镜像一样防止未经授权的repos,并且你可以声明配置文件(工作和家庭),每个配置文件中都有不同的服务器。

票数 1
EN

Stack Overflow用户

发布于 2013-06-20 13:25:18

不幸的是,Maven没有现成的解决方案。通常我通过git检查我的settings.xml,并且对不同的网络有不同的分支,比如在工作,家庭等。结果被简化为一个简单的

代码语言:javascript
复制
git checkout HOME

代码语言:javascript
复制
git checkout WORK

等。

票数 2
EN

Stack Overflow用户

发布于 2018-04-12 01:51:58

使用新的maven (3.3.1+),使用project-settings-extension加载项目设置,并将特定于项目的镜像放入每个项目的${basedir}/.mvn/settings.xml中。

${basedir}/.mvn/extensions.xml

代码语言:javascript
复制
    <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.0.1</version>
      </extension>
    </extensions>

${basedir}/.mvn/settings.xml

代码语言:javascript
复制
<settings>
  <mirrors>
    <mirror>
      <id>id</id>
      <url>https://internal-repo/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>

然后,该项目将通过mvn test在内部网络中进行开箱即用的构建,并且不会污染您的个人.m2/settings.xml

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

https://stackoverflow.com/questions/17205101

复制
相关文章

相似问题

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