可以用环境变量替换 maven -D 系统属性吗?
Can one replace the maven -D system properties with environment variables?
在特定环境中,我必须 运行 Maven 使用系统属性传递代理:
mvn -DproxySet=true -DproxyHost=... -DproxyPort=... clean install
是否有一些 Maven 环境变量可用于实现相同的目的?
我会想象这样的事情:
PROXY_SET=true PROXY_HOST=... PROXY_PORT=... mvn clean install
我要实现的只是运行:
mvn clean install
不管我在哪里。 (我可以设置环境变量来告诉我是否在代理后面)
更新:这个问题不是 How do I use Maven through a proxy? 的重复问题,因为我也想在没有代理的情况下无缝工作。我想在后台和互联网上工作,而不必键入 -Dproxy...
属性。
我会将 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>
如果您通过使用 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>
...
在特定环境中,我必须 运行 Maven 使用系统属性传递代理:
mvn -DproxySet=true -DproxyHost=... -DproxyPort=... clean install
是否有一些 Maven 环境变量可用于实现相同的目的?
我会想象这样的事情:
PROXY_SET=true PROXY_HOST=... PROXY_PORT=... mvn clean install
我要实现的只是运行:
mvn clean install
不管我在哪里。 (我可以设置环境变量来告诉我是否在代理后面)
更新:这个问题不是 How do I use Maven through a proxy? 的重复问题,因为我也想在没有代理的情况下无缝工作。我想在后台和互联网上工作,而不必键入 -Dproxy...
属性。
我会将 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>
如果您通过使用 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>
...