2016-07-25 6 views
3

В определенной среде я должен запустить Maven, используя свойства системы, чтобы пройти через прокси-сервер:Можно ли заменить свойства системы maven -D переменными окружения?

mvn -DproxySet=true -DproxyHost=... -DproxyPort=... clean install 

есть какой-то envinronment переменного Maven, которые я могу использовать, чтобы достичь того же?

Я предположил бы, что-то вроде этого:

PROXY_SET=true PROXY_HOST=... PROXY_PORT=... mvn clean install 

То, что я хочу добиться того, чтобы работать только:

mvn clean install 

независимо, где я. (Я могу установить переменные среды, которые говорят мне, если я за прокси-сервером или нет)

ОБНОВЛЕНИЕ: Этот вопрос не является дубликатом How do I use Maven through a proxy?, потому что я также хочу работать без прокси. Я хочу работать как позади, так и через Интернет, не набирая -Dproxy....

+0

@Tunaki Я не думаю, что это дубликат - ответы на эти вопросы не ссылаться на переменные окружения вообще. – OrangeDog

+0

В указанном вопросе пользователь хочет работать OKNLY за прокси. Я хочу работать как позади, так и из Интернета без необходимости вводить свойства '-Dproxy ...'. –

+0

@ Tunaki просто потому, что один ответ оказывается похожим (даже не совсем таким же) не делает вопрос точным дубликатом. – OrangeDog

ответ

4

Если вы вызываете Maven через скрипт, который использует MAVEN_OPTS, например, 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> 
    ... 
+0

Yup, 'MAVEN_OPTS' выполняет эту работу для меня. Я могу установить его на основе сети, в которой я нахожусь. –

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> 

https://maven.apache.org/guides/mini/guide-proxies.html

+0

Это не работает, когда я не за прокси. –

+0

Так что _same_ компьютер иногда за прокси, а иногда нет? Из вашего вопроса я понял, что вам нужны настройки Maven для разных компьютеров. –