Подтвердить что ты не робот

Настройки прокси с плющом

У меня проблема, когда я определил зависимости в ivy.xml на нашем внутреннем корпоративном svn. Я могу получить доступ к этому сайту svn без какой-либо прокси-задачи в ant. В то время как мои зависимости находятся на 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(как будто у меня есть прокси, плющ не сможет найти файл плюща за прокси-сервером в сети), и мне просто нужно его, когда мой резольвер отправляется на общедоступный URL-адрес.

4b9b3361

Ответ 1

При использовании setproxy используйте атрибут nonproxyhosts, чтобы указать хосты, для которых прокси не должен использоваться (разделение по каналу). например, изменить задачу setproxy в вашем примере на

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

Подробнее см. http://ant.apache.org/manual/Tasks/setproxy.html

Ответ 2

ANT настройки прокси-сервера

Насколько я знаю, настройки прокси-сервера не могут быть установлены в файле ANT. В документации указано, что вам нужно установить следующую переменную среды

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

Это системные свойства (в отличие от обычного свойства ANT).

Update: Я стою исправлено. Я вижу, вы используете метод setproxy для установки прокси. Я никогда не использовал его. Настройка параметров системы всегда работала для меня и имела преимущество быть вне файла сборки (например, когда я работаю из дома без прокси).

Чтобы настроить параметры "no proxy"

Я не знаю, как исключить локальные хосты с помощью механизма прокси-сервера 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"/>

Это автоматически перейдет к центральному URL-адресу Maven http://repo1.maven.org/maven2". В соответствии с doco этот резольвер будет использовать модули POM в Maven для определения временных зависимостей.

Наконец, слово предупреждения. Если вы не используете раздел modules в вашем файле ivysettings, убедитесь, что ваши распознаватели объявлены в цепочном разрешении, чтобы плющ будет искать оба репозитория для каждого модуля

<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>