我工作场所的代理阻止我使用 Maven
My workplace's proxy is preventing me from using Maven
我在 public 部门工作,所以我的工作场所对互联网访问控制非常严格。我已经尝试配置 M2Eclipse 读取的 settings.xml 文件无济于事。就我而言,这可能是简单的用户错误,但无论如何我都想探索其他选项,以防万一。
我正在考虑安装本地 Nexus 存储库,因为我可以绕过某些程序的代理(在这种情况下不是 Maven),但截至目前我什至没有管理员权限来尝试解出来了。
我想我也可以自己初始化项目 VPS,将项目推送到 git 存储库,然后在我的工作机器上也拉入项目。
我是否应该放弃并手动将所需的 JAR 添加到项目构建路径?
如有任何帮助,我们将不胜感激!
咳咳 并不是我的 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)连接到 SSH 隧道到您的 VPS。一旦流量到达那里,您的 VPS 就是您的 HTTP 代理,您组织的代理已被绕过。
如果您的 IT 部门设置了深度数据包检测,或者禁止您 VPS 的 IP 范围,或者其他一些组合,那将失败。但最重要的是,如果他们让你通过网络数据包,他们可以做各种各样的事情让你的生活变得困难,但如果你很聪明,他们可能无法阻止你设置自己的代理并绕过 most/all 他们的基础设施。
在 <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 作业。
我在 public 部门工作,所以我的工作场所对互联网访问控制非常严格。我已经尝试配置 M2Eclipse 读取的 settings.xml 文件无济于事。就我而言,这可能是简单的用户错误,但无论如何我都想探索其他选项,以防万一。
我正在考虑安装本地 Nexus 存储库,因为我可以绕过某些程序的代理(在这种情况下不是 Maven),但截至目前我什至没有管理员权限来尝试解出来了。
我想我也可以自己初始化项目 VPS,将项目推送到 git 存储库,然后在我的工作机器上也拉入项目。
我是否应该放弃并手动将所需的 JAR 添加到项目构建路径?
如有任何帮助,我们将不胜感激!
咳咳 并不是我的 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)连接到 SSH 隧道到您的 VPS。一旦流量到达那里,您的 VPS 就是您的 HTTP 代理,您组织的代理已被绕过。
如果您的 IT 部门设置了深度数据包检测,或者禁止您 VPS 的 IP 范围,或者其他一些组合,那将失败。但最重要的是,如果他们让你通过网络数据包,他们可以做各种各样的事情让你的生活变得困难,但如果你很聪明,他们可能无法阻止你设置自己的代理并绕过 most/all 他们的基础设施。
在 <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 作业。