【问题标题】:My workplace's proxy is preventing me from using Maven我工作场所的代理阻止我使用 Maven
【发布时间】:2015-05-09 12:12:59
【问题描述】:

我在公共部门工作,所以我的工作场所非常严格地控制互联网访问。我尝试配置 M2Eclipse 读取的 settings.xml 文件无济于事。在我的情况下,这可能是简单的用户错误,但我还是想探索其他选项,以防万一。

我正在考虑安装一个本地 Nexus 存储库,因为我可以绕过某些程序的代理(在这种情况下不是 Maven),但到目前为止,我什至没有管理员权限来尝试该解决方案.

我想我也可以在我自己的 VPS 上初始化项目,将项目推送到 git 存储库,然后也将项目拉入我的工作机器上。

我是否应该放弃并手动将所需的 JAR 添加到项目构建路径中?

任何帮助将不胜感激!

【问题讨论】:

    标签: java spring maven spring-mvc proxy


    【解决方案1】:

    咳咳并不是说我的 IT 人员会感谢我告诉你这一点,但通过正确的配置,你通常可以欺骗大多数代理让你通过。

    First you have to configure your maven http proxy in settings.xml

    <settings>
      .
      .
      <proxies>
       <proxy>
          <id>example-proxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.example.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>somepassword</password>
          <nonProxyHosts>www.google.com|*.example.com</nonProxyHosts>
        </proxy>
      </proxies>
      .
      .
    </settings>
    

    Then you have to modify your User-Agent:

    <server>
      <id>archiva.localhost</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>User-Agent</name>
            <value>Internal-Build-System/1.0</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
    

    因此,例如,如果您的组织仅允许通过代理使用特定版本的 Internet Explorer,那么您就是这样撒谎并声称 maven 是该版本的 Internet Explorer,因此不会打扰您。

    如果这不起作用,因为它们从根本上阻止了您需要从中提取 JAR 的站点,那么您可能会变得更加狡猾;是的,它涉及一个 VPS。如您所说,一种选择是使用 git 。

    另一种选择(IT 人员讨厌这样做,风险自负,因为无论您的本地政策是什么,这都可能违反它)是将您的 VPS 设置为 HTTP 代理。你可以在你的 VPS 上设置类似 Squid 的东西,然后从你的工作机器设置一个SSH tunnel 到连接到你的 HTTP 代理的 VPS。因此,这将起作用的方式是您的工作机器将使用作为本地端口的 HTTP 代理(例如 localhost:8080)。该本地端口将通过某个网络可接受的端口(例如 80)连接到您的 VPS 的 SSH 隧道。一旦流量到达那里,您的 VPS 就是您的 HTTP 代理,并且您的组织的代理已被绕过。

    如果您的 IT 部门设置了深度数据包检测,或者禁止您的 VPS 的 IP 范围,或者其他一些组合,这将失败。但最重要的是,如果他们让你通过网络数据包,他们可以做各种各样的事情让你的生活变得困难,但如果你很聪明,他们可能无法阻止你设置自己的代理并绕过大多数/他们所有的基础设施。

    【讨论】:

    • 我的...我的上帝。太棒了。
    • 权力越大,责任越大,年轻的帕德万。
    【解决方案2】:

    &lt;your_home_folder&gt;/.m2 文件夹下创建 settings.xml 文件。 (settings.xml 文件永远不会在此位置自动创建,因此您可以将此文件从 &lt;maven_install_dir&gt;/conf/ 文件夹复制到 &lt;your_home_folder&gt;/.m2 并覆盖)

    现在在&lt;your_home_folder&gt;/.m2/settings.xml 编辑此文件并取消注释settings.xml 文件中的以下移植并使用您的代理设置进行配置。

    <proxies>
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    

    现在重新运行您的 maven 作业。

    【讨论】:

      猜你喜欢
      • 2014-06-20
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多