在某个环境中,我必须使用系统属性运行Maven来传递代理:
mvn -DproxySet=true -DproxyHost=... -DproxyPort=... clean install
我是否可以使用一些Maven envinronment变量来实现相同的目标?
我会想象这样的事情:
PROXY_SET=true PROXY_HOST=... PROXY_PORT=... mvn clean install
我想要实现的只是运行:
mvn clean install
无论我在哪里。 (我可以设置环境变量,告诉我我是否在代理之后)
更新:此问题与How do I use Maven through a proxy?不重复,因为我还想在没有代理的情况下无缝工作。我想在后面和互联网上工作,而不必输入-Dproxy...
属性。
答案 0 :(得分:4)
如果您通过使用MAVEN_OPTS
的脚本调用Maven,例如mvn.bat
:
MAVEN_OPTS="-DproxySet=true -DproxyHost=..."
如果没有,那么你总是可以编写自己的包装脚本。
或者,您可以配置your proxy settings以从环境中读取值:
<proxies>
<proxy>
<id>example-proxy</id>
<active>${env.PROXY_SET}</active>
<host>${env.PROXY_HOST}</host>
<port>${env.PROXY_PORT}</port>
...
答案 1 :(得分:1)
我会使用settings.xml和
这样的东西<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>