web-dev-qa-db-ja.com

ツタのプロキシ設定

Ivy.xmlで社内の企業svnに依存関係を定義しているという問題があります。 antのプロキシタスクなしでこのsvnサイトにアクセスできます。私の依存関係はibiblioにありますが、それは私たちの会社の外にあるものであり、何かをダウンロードするにはプロキシが必要です。ここでツタを使うのに問題があります。

Build.xmlに以下があります

<target name="proxy">  
    <property name="proxy.Host" value="xyz.proxy.net"/>  
    <property name="proxy.port" value="8443"/>  
    <setproxy proxyhost="${proxy.Host}" proxyport="${proxy.port}"/>  
</target>  

<!-- resolve the dependencies of stratus -->
<target name="resolveTestDependency" depends="testResolve, proxy" description="retrieve test dependencies with ivy">
    <ivy:settings file="stratus-ivysettings.xml" />
    <ivy:retrieve conf="test" pattern="${jars}/[artifact]-[revision].[ext]"/><!--pattern here specifies where do you want to download lib to?-->                                          
</target>

<target name=" testResolve ">
    <ivy:settings file="stratus-ivysettings.xml" />
    <ivy:resolve conf="test" file="stratus-ivy.xml"/>
</target>

以下はstratus-ivysettings.xmlからの抜粋です

<resolvers>  
    <!-- here you define your file in private machine not on the repo (e.g. jPricer.jar or edgApi.jar)-->  
    <!-- This we will use a url nd not local file system.. -->  
    <url name="privateFS">  
        <ivy pattern="http://xyz.svn.com/ivyRepository/ [organisation]/ivy/ivy.xml"/>                                                    
    </url>  
.  
.  
.  
    <url name="public" m2compatible="true">     
        <artifact pattern="http://www.ibiblio.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>  
    </url>
.  
.  
.  

したがって、ここでivy.xmlを取得するために見られるように、プロキシを設定するとアクセスできない独自のネットワーク内にあるため、プロキシは必要ありません。しかし一方で、私はネットワークの外部にあり、プロキシでのみ機能するibiblioも使用しています。したがって、上記のbuild.xmlはその場合は機能しません。誰かがここで助けることができますか?.

Ivy.xmlの取得中にプロキシは必要ありません(プロキシがあるかのように、ivyはネットワーク内からプロキシの背後にあるivyファイルを見つけることができません)。リゾルバーがパブリックURLに移動するときに必要です。

17
SMA

setproxyを使用する場合は、nonproxyhosts属性を使用して、プロキシを使用しない(パイプで区切る)ホストを指定します。たとえば、例のsetproxyタスクを次のように変更します。

<setproxy proxyhost="${proxy.Host}"
          proxyport="${proxy.port}"
          nonproxyhosts="xyz.svn.com"/>

詳細については、 http://ant.Apache.org/manual/Tasks/setproxy.html を参照してください。

14
Tom Howard

ANTプロキシ設定

私の知る限り、プロキシ設定はANTファイル内で設定できません。 documentation は、次の環境変数を設定する必要があることを示しています

export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"

これらはシステムプロパティです(通常のANTプロパティとは対照的です)。

更新:私は訂正されたままです。プロキシを設定するためにsetproxyメソッドを使用しているようです。私はそれを使ったことがありません。システムパラメータの設定は常に私にとってはうまくいき、ビルドファイルの外にいるという利点がありました(たとえば、プロキシなしで自宅で仕事をしているとき)。

「プロキシなし」オプションを構成するには

ANTプロキシメカニズムを使用してローカルホストを除外する方法がわかりません。私が提案できるのは、JREを直接構成しようとすることだけです。

http://Java.Sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/proxie_config.html

Mavenリゾルバー

Mavenの中央依存関係の場合、次のようなリゾルバーが必要です

<ibiblio name="maven2" m2compatible="true"/>

これにより、Mavenの中央URL " http://repo1.maven.org/maven2 "に自動的に移動します。 doco によると、このリゾルバーはMavenのモジュールPOMを使用して、一時的な依存関係を判別します。

最後に警告の言葉。 ivysettingsファイルで modules セクションを使用している場合を除き、ivyが各モジュールの両方のリポジトリを検索するように、リゾルバーがチェーンリゾルバー内で宣言されていることを確認してください

<chain name="defaultResolver" returnFirst="true">
    <url name="privateFS">
        <ivy pattern="http://xyz.svn.com/ivyRepository/ [organisation]/ivy/ivy.xml"/>
    </url>
    <ibiblio name="maven2" m2compatible="true"/>
</chain>
15
Mark O'Connor