我的工作场所代理阻止我使用Maven

时间:2015-05-09 12:12:59

标签: java spring maven spring-mvc proxy

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

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

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

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

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

咳嗽并不是说我的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的东西,然后从工作机器到连接到HTTP代理的VPS设置SSH tunnel。因此,这将起作用的方式是您的工作机器将使用作为本地端口的HTTP代理(例如localhost:8080)。该本地端口将通过某个网络可接受的端口(例如80)连接到SSH隧道到您的VPS。一旦流量到达那里,您的VPS就是您的HTTP代理,并且您的组织的代理已被绕过。

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

答案 1 :(得分:0)

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

现在在<your_home_folder>/.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工作。