質問

だから、これを達成するための最良の方法が何であるかはわかりませんが、基本的に私はMavenプロジェクトで職場で使用するラップトップを持っています。私が仕事をしているときはそれは正常に動作しますが、私が彼らの企業のプロキシとメイベンサーバーのドアから出るとすぐに、私はしばしば多くの手作業をしなければなりません settings.xml 私が家にいるときにファイルvpn'edでは:

  • 私たちは、私たち自身のアーティファクトのいくつかを保存し、一般的に使用されるアーティファクトの中間人であることを処理するために、企業にインストールされたMavenリポジトリプロキシサーバーを持っています。
  • 外の世界に接続するために使用するHTTPプロキシがあります。

両方の構成は私によって処理されました settings.xml 設定のためのファイル 単一のネクサスグループMaven Proxies. 。オフィスから離れている間にVPNに接続していない場合は、settings.xmlを使用していないたびに、settings.xmlを動かしてから、そのままに戻す必要があります。

他の誰かがこれを処理することを発見したソリューションは何ですか?プロキシを管理するためにプロファイルを試みてきましたが、正しく機能するようにすることはできません。かなり醜く見え始めています。できる設定構成がありますか 探知 私が職場でプロキシの後ろにいないとき、コーポレートプロキシサーバーまたはMavenサーバーを使用しないときは?

役に立ちましたか?

解決

プロキシを処理するためのプロファイルベースのソリューションを考えることができますが(基本的に、 <active> プロファイルで定義されているプロパティからの値)、これは完全に自動化されません( プロファイルのアクティブ化 ネットワークベースのものをサポートしないでください)あなたの場所に応じて存在するかどうか(この場合、既存/欠落ファイルのトリガーを使用できますが、これはちょっとハッキーです)を見つけることができない限り。とにかく、これは鏡をプロファイルで宣言できないため、問題の一部のみを解決します(参照 MNG-3525).

したがって、プロファイルでこれを制御しようとする代わりに、私の提案は2つを使用することです settings.xml そしてあなたを渡す settings-home.xml でファイル -s あなたが家にいるときのコマンドラインオプション。

別のオプションは、あなたの変更を自動化することです settings.xml スクリプト(グルーヴィーは誰かが報告したように良い選択になるでしょう MNG-3525).

他のヒント

設定する使用環境変数を見つけました nonProxyHosts 一緒に proxynoproxy シェルエイリアスは、プロキシを備えたネットワークを切り替えるときに最も便利なソリューションです。

settings.xml, 、プロキシを構成します

<host>proxy.corporation.int</host>
<port>8080</port>
<nonProxyHosts>${env.MAVEN_NONPROXY}</nonProxyHosts>

その後 ~/.profile 設定

export MAVEN_NONPROXY_PROXY='*.corporation.int|local.net|some.host.com'
export MAVEN_NONPROXY_NOPROXY='*'

alias proxy="export MAVEN_NONPROXY=\"$MAVEN_NONPROXY_PROXY\" && export all_proxy=http://proxy.corporation.int:8080"
alias noproxy="export MAVEN_NONPROXY=\"$MAVEN_NONPROXY_NOPROXY\" && unset all_proxy"


ローミング時にスイッチを実行するには、シェルから実行するだけです。

[me@linuxbox me]$ proxy

また

[me@linuxbox me]$ noproxy

明らかに、両方のエイリアス proxynoproxy セットアップよりもはるかに多くの変更を含めることができます MAVEN_NOPROXYall_proxy.

私は同じ問題に不満を感じていました。ネットワーク間をローミングするときに、settings.xmlを手動で編集する必要があります。実際、プロキシ設定の自動発見を可能にするMavenプラグインを書きました。現在の実装では、Bernd Rosstauscherによって書かれたプロキシボールライブラリを使用して、OSの構成、ブラウザー、環境設定に基づいてプロキシ設定を検出します。

Apache 2.0ライセンスの下で、GitHubのプラグインのソースコードをリリースしました。 https://github.com/volkertb/autoproxy-maven-plugin

あなたはそれを試してみて、それがあなたのニーズを満たしているかどうかを確認することを歓迎します。フィードバックや貢献は大歓迎です!

(注:必ずしもプロジェクトのPOMにプラグインを追加する必要はありません。インストール後、コマンドラインからも呼び出すことができます。詳細については、サイトのReadmeをご覧ください。)

設定できます MAVEN_OPTS プロキシをアクティブ化する必要がある場合:

export MAVEN_OPTS="-Dhttp.proxyHost=my-proxy-server -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts=*.my.org -Dhttps.proxyHost=my-proxy-server -Dhttps.proxyPort=80 -Dhttps.nonProxyHosts=*.my.org"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top