我在公共部门工作,所以我的工作场所严格控制互联网接入。我已经尝试配置M2Eclipse读取的settings.xml文件无济于事。在我的情况下,这可能是简单的用户错误,但我还是想探索其他选项,以防它不是。
我正在考虑安装一个本地的Nexus存储库,因为我可以绕过某些程序的代理(在这种情况下只是Maven),但截至目前我还没有管理员权限来尝试解决该问题
我想我也可以在我自己的VPS上初始化项目,将项目推送到git存储库,然后在我的工作机器上拉入项目。
我是否应该放弃并手动将所需的JAR添加到项目构建路径中?
任何帮助将不胜感激!
答案 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工作。