对于多个存储库Maven的设置 [英] Maven Settings for multiple repositories
本文介绍了对于多个存储库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中,我有两个罐子
- Apache的commons.jar(我假设是从中央下载)
- licensed.jar(我假设是从付费下载的罐子)
但是当我运行行家干净的安装
它试图从组织和中部下载licensed.jar。
我怎样才能使它使用付费罐子下载?是否有可能首先它去ORG-中央,如果失败则尝试以付费罐子?如果是这样,怎么样?我不想把回购条目的pom.xml
将Settings.xml
<?XML版本=1.0编码=UTF-8&GT?;
<设置的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\">
<代理>
<代理>
<&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
- apache-commons.jar (which I assumes to be downloaded from central)
- 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屋!
查看全文