如何让Maven从Nexus下载,但绕过它进行外部jar



我知道Nexus应该下载外部依赖项,但公司Nexus服务器(我无法控制(无法访问互联网或下载外部jar。

作为一种变通方法,我有2个settings.xml文件,可以手动切换。一个settings.xml使用公司Nexus服务器进行内部jar,另一个使用公司代理从默认的Maven存储库下载外部依赖项。一旦所有的依赖项都在我的本地Maven repo compilings中就可以工作了。

Nexus的settings.xml(不包括代理(

<settings>
<mirrors>
<mirror>
<id>some-repo-mirror</id>
<mirrorOf>*</mirrorOf>
<url>https://brokennexus/repository/maven-public/</url>
</mirror>
</mirrors>
<servers>
<server>
<id>some-repo-mirror</id>
<username>me</username>
<password>secret</password>
</server>
</servers>
</settings>

settings.xml用于互联网(不包括镜像和服务器(

<settings>
<proxies>
<proxy>
<id>company-proxy-http</id>
<active>true</active>
<protocol>http</protocol>
<username>me</username>
<password>secret</password>
<host>proxy.server</host>
<port>8080</port>
</proxy>
<proxy>
<id>company-proxy-https</id>
<active>true</active>
<protocol>https</protocol>
<username>me</username>
<password>secret</password>
<host>proxy.server</host>
<port>8080</port>
</proxy>
</proxies>
</settings>

这两个文件都可以单独工作,但我不知道如何将它们合并为一个文件。

是否有一种方法可以配置maven,如果Nexus公司无法解决依赖关系,它会后退并尝试通过公司的互联网代理从外部回购下载,或者反过来,这样我就不必在两个settings.xml文件之间切换了?

您可以在您的"正常的";settings.xml并将您的Nexus排除为非代理主机:

https://maven.apache.org/guides/mini/guide-proxies.html

此外,您需要将镜像配置<mirrorOf>*</mirrorOf>更改为类似<mirrorOf>*,!central</mirrorOf>的配置,以便能够直接连接MavenCentral(和其他存储库(。

当然,如果管理员可以将外部存储库添加到Nexus公司,首选的解决方案是与管理员交谈。

最新更新