对于多个存储库Maven的设置 [英] Maven Settings for multiple repositories

查看:258
本文介绍了对于多个存储库Maven的设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在settings.xml中以下

<&镜子GT;
       <反射镜GT;
          <&ID GT;实罐< / ID>
          <名称>与许可和LT罐; /名称>
          < URL>的http:// URL:8081 /关系/内容/库/ paidjars /< / URL>
          < mirrorOf>!中央和LT; / mirrorOf>
      < /镜像>
      <反射镜GT;
          <&ID GT; ORG-中央和LT; / ID>
          <名称>中央和LT镜; /名称>
          < URL>的http:// URL:8081 /关系/内容/库/中央/< / URL>
          < mirrorOf>中央< / mirrorOf>
      < /镜像>
  < /后视镜>

在pom.xml中,我有两个罐子


  1. Apache的commons.jar(我假设是从中央下载)

  2. licensed.jar(我假设是从付费下载的罐子)

但是当我运行行家干净的安装它试图从组织和中部下载licensed.jar。

我怎样才能使它使用付费罐子下载?是否有可能首先它去ORG-中央,如果失败则尝试以付费罐子?如果是这样,怎么样?我不想把回购条目的pom.xml


将Settings.xml

<?XML版本=1.0编码=UTF-8&GT?;
<设置的xmlns =htt​​p://maven.apache.org/SETTINGS/1.0.0
          XMLNS:XSI =htt​​p://www.w3.org/2001/XMLSchema-instance
          XSI:的schemaLocation =htt​​p://maven.apache.org/SETTINGS/1.0.0
                 http://maven.apache.org/xsd/settings-1.0.0.xsd\">
  <代理>
    <代理>
      <&ID GT;代理< / ID>
      <积极>真< /主动>
      <&协议GT; HTTP< /协议>
      <用户名>用户名< /用户名>
      <密码和GT;&****** LT; /密码>
      <主机> host.url< /主机>
      <港口> 8080< /端口>
      < nonProxyHosts> local.net | internal.com< / nonProxyHosts>
    < /代理>
  < /代理>
 <&镜子GT;
       <反射镜GT;
          <&ID GT;实罐< / ID>
          <名称>与许可和LT罐; /名称>
          < URL>的http:// URL:8081 /关系/内容/库/ paidjars /< / URL>
          < mirrorOf>!中央和LT; / mirrorOf>
      < /镜像>
      <反射镜GT;
          <&ID GT; ORG-中央和LT; / ID>
          <名称>中央和LT镜; /名称>
          < URL>的http:// URL:8081 /关系/内容/库/中央/< / URL>
          < mirrorOf>中央< / mirrorOf>
      < /镜像>
  < /后视镜>
  <型材>
      <型材>
          <&ID GT;编译器和LT; / ID>
          <性状>
              < JAVA_1_7_HOME> C:\\ Program Files文件(x86)的\\的Java \\ jdk1.7.0_51 \\ BIN< / JAVA_1_7_HOME>
          < /性状>
      < / profile文件>
  < /型材>
< /设置>


解决方案

您必须安装镜子
  

<反射镜GT;
  <&ID GT; Nexus和LT; / ID>
  < mirrorOf> * LT; / mirrorOf>
  < URL>的http://内部/关系/内容/库/第三方< / URL>
< /镜像> <反射镜GT;
  <&ID GT;谷歌< / ID>
  < mirrorOf>谷歌< / mirrorOf>
  &LT; URL&GT; HTTP://google-maven-repository.google$c$c.com/svn/repository< / URL&GT;
&LT; /镜像&GT;

然后添加内部和放大器;外部回购

&LT;型材&GT;
     &LT;&ID GT; Nexus和LT; / ID&GT;
  &LT;库&GT;    &LT;&库GT;
      &LT;&ID GT;中央&LT; / ID&GT;
      &LT;名称&gt;中欧及LT; /名称&gt;
      &LT; URL&GT;的http://内部/关系/内容/库/第三方&LT; / URL&GT;
    &LT; /存储库&GT;
    &LT;&库GT;
      &LT;&ID GT;谷歌&LT; / ID&GT;
      &LT;名称&gt;&谷歌LT; /名称&gt;
      &LT; URL&GT; HTTP://google-maven-repository.google$c$c.com/svn/repository< / URL&GT;
    &LT; /存储库&GT;  &LT; /存储库&GT;
&LT; / profile文件&GT;

I have the following in settings.xml

<mirrors>
       <mirror>
          <id>paid-jars</id>
          <name>jars with license</name>
          <url>http://url:8081/nexus/content/repositories/paidjars/</url>
          <mirrorOf>!central</mirrorOf>
      </mirror>
      <mirror>
          <id>Org-central</id>
          <name>mirror of central</name>
          <url>http://url:8081/nexus/content/repositories/central/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
  </mirrors>

In pom.xml I have two jars

  1. apache-commons.jar (which I assumes to be downloaded from central)
  2. licensed.jar (which I assume to be downloaded from paid-jars)

But when I run maven clean install it tries to download licensed.jar from Org-central.

How can I make it use paid-jars to download? Is it possible first it goes to Org-central and if fails it tries at paid-jars? If so, how? I don't want to put repo entries in pom.xml


Settings.xml

<?xml version="1.0" encoding="UTF-8"?>    
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <proxies>    
    <proxy>
      <id>Proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>username</username>
      <password>******</password>
      <host>host.url</host>
      <port>8080</port>
      <nonProxyHosts>local.net|internal.com</nonProxyHosts>
    </proxy>
  </proxies>
 <mirrors>
       <mirror>
          <id>paid-jars</id>
          <name>jars with license</name>
          <url>http://url:8081/nexus/content/repositories/paidjars/</url>
          <mirrorOf>!central</mirrorOf>
      </mirror>
      <mirror>
          <id>Org-central</id>
          <name>mirror of central</name>
          <url>http://url:8081/nexus/content/repositories/central/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
  </mirrors>
  <profiles>
      <profile>
          <id>compiler</id>
          <properties>
              <JAVA_1_7_HOME>C:\Program Files (x86)\Java\jdk1.7.0_51\bin</JAVA_1_7_HOME>
          </properties>
      </profile>
  </profiles>
</settings>

解决方案

you have to setup mirror

<mirror>
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://internal/nexus/content/repositories/thirdparty</url>
</mirror>

 <mirror>
  <id>google</id>
  <mirrorOf>google</mirrorOf>
  <url>http://google-maven-repository.googlecode.com/svn/repository</url>
</mirror>   

then add internal & external repo

<profile>
     <id>nexus</id>
  <repositories>

    <repository>
      <id>central</id>
      <name>central</name>
      <url>http://internal/nexus/content/repositories/thirdparty</url>
    </repository>


    <repository>
      <id>google</id>
      <name>google</name>
      <url>http://google-maven-repository.googlecode.com/svn/repository</url>
    </repository>

  </repositories>
</profile>

这篇关于对于多个存储库Maven的设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆