2016-09-06 2 views
6

特定のプロファイルがアクティブな場合にのみ、プロキシを使用したいと思います。これを達成するために、<active>のプロパティーを<proxy>要素のパラメーターにすることが私の推測です。しかし、私はこれを達成する方法を正確にはわかりません。特定のプロファイルがMavenでアクティブな場合にのみプロキシを使用できますか?

質問:特定のプロファイルがアクティブな場合にのみ、どのようにプロキシを使用できますか?

+0

_settings.xml_ファイルでは、プロキシがprofiles要素の外にあるため、これはできません(https://maven.apache.org/settings.html#Proxiesを参照) – Tome

+1

何が助けになるか:あなたmavenがmvn -s /path/to/settings.xmlで使うsettings.xmlを指定することができます - あなたのケースでは2つの設定が可能でしょうか? – wemu

答えて

5

次のアプローチを試みることができる:

<settings> 

    <proxies> 
     <proxy> 
      <id>httpproxy</id> 
      <active>${activate.proxy}</active> 
      <protocol>http</protocol> 
      <host>some.host</host> 
      <port>8080</port> 
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> 
     </proxy> 
    </proxies> 

    <profiles> 
     <profile> 
      <id>proxy-on</id> 
      <properties> 
       <activate.proxy>true</activate.proxy> 
      </properties> 
     </profile> 

     <profile> 
      <id>proxy-off</id> 
      <properties> 
       <activate.proxy>false</activate.proxy> 
      </properties> 
     </profile> 
    </profiles> 

    <activeProfiles> 
     <activeProfile>proxy-off</activeProfile> 
    </activeProfiles> 
</settings> 

ので、デフォルトでproxy-offプロファイルがfalseactivate.proxyを設定し、falseからproxyのようにactiveとして考えており、アクティブになります。

その後で実行:

mvn clean install -Pproxy-on 

proxy-onプロファイルをアクティブになり、全体のチェーンはactiveためtrueになるはずです。

+0

@Utkuこの問題を修正しましたか?この回答は役に立ちましたか? –

+0

私のために働いた、 –

+1

**はMaven 3.3.9と3.5.0のどちらでも私には機能しません。 – Jan

関連する問題