Maven使用代理配置了使用noProxyHost配置的主机

时间:2016-09-20 14:05:50

标签: maven proxy

我有以下设置:我有一个具有不同依赖关系的maven(3.3.3)项目:

  1. 必须从公共互联网下载的依赖关系。
  2. 必须从Intranet下载的依赖项。
  3. 关于代理,必须以不同方式处理它们:

    • 由于maven构建发生在私有内部网中,因此必须通过代理下载所有公共互联网下载。
    • Intranet中的服务器现在允许公共访问。出于这个原因,必须在没有代理的情况下下载来自Intranet的所有下载。

    幸运的是,Intranet服务器很容易识别,因为它们的域名以.thecompany.org结尾。

    我运行我的maven项目,并从互联网上获取依赖项的错误(因为缺少代理设置)。

    所以在.2m/settings.xml我这样做:

    <proxies>
    <proxy>
        <id>internet-proxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>proxy-server.org</host>
        <port>8080</port>
        <nonProxyHosts>localhost|*.thecompany.org</nonProxyHosts>
    </proxy>
    </proxies>
    

    现在我运行maven并从Intranet获取“Access Denied”错误。但maven想要下载的文件是可以访问的(我可以用wget确认)。当我尝试通过代理下载时,会发生“拒绝访问”。

    看来,Maven正在使用代理。当我查看日志时,我看到了这个

    [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for http://server.thecompany.org/somedir/
    

    对于外部连接,它会告诉我它使用代理。

    Maven是否可以在不告诉我的情况下使用代理?

1 个答案:

答案 0 :(得分:0)

我使用像Nexus这样的Maven存储库管理器将我的所有上游存储库合并到一个存储库组中。

因此,在Maven存储库上配置存储库,并将所有Maven客户端指向一个聚合所有上游存储库源的存储库。

Maven存储库的一个重要的第二个好处是它将缓存依赖关系,从而加快构建速度。