maven - 如何让 Maven 从 Nexus 下载但绕过它获取外部 jar

标签 maven nexus mvn-repo

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

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

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 排除为非ProxyHost:

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

此外,还需要更改镜像配置<mirrorOf>*</mirrorOf>类似 <mirrorOf>*,!central</mirrorOf>能够直接连接 MavenCentral(以及其他存储库)。

当然,首选解决方案是与管理员联系,看他们是否可以将外部存储库添加到公司 Nexus。

关于maven - 如何让 Maven 从 Nexus 下载但绕过它获取外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64008230/

相关文章:

eclipse - 如何为tomcat maven插件添加存储库

maven - ivy 可以从 Maven 存储库安装和检索配置吗?

用于删除 nexus 3 上的工件的 groovy 脚本(不是 nexus 2)

nexus - Sonatype-Nexus-OSS- LDAP 支持

maven - 如何查看 mvnrepository.com 的传递依赖关系?

java - 缺少 Artifact com.google.guava :guava:bundle:18. 0

java - Anypoint Studio Maven 在错误的 java 目录中查找 tools.jar

gradle - 使用 maven-publish gradle 插件获取已发布工件的 uri

java - 在 Maven 存储库中查找 Oracle JDBC 驱动程序

java - 在 Maven 存储库中查找 Oracle JDBC 驱动程序