Временное решение для установки Apache Ant Bug

Может кто-нибудь помочь с инструкциями для обхода ошибки установки Apache Ant в Windows?

Фрагмент ниже описывает один из трех обходных путей. Если вы в состоянии успешно заставить один из них работать, не могли бы вы поделиться?

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696

(1) Запустите с -Djava.net.preferIPv4Stack=true - добавьте исключение брандмауэра для двоичного файла Java.

(2) Запустите с -Djava.net.preferIPv4Stack=true (который отключает IPv6 и использует исключительно сокеты AF_INET)

(3) Или отключите проверку FTP с отслеживанием состояния в брандмауэре (настройка реестра или команда netsh)

============

Настроить:

Установите Apache Ant:

  • скачать бинарные файлы на http://ant.apache.org/

  • перейдите по этому пути для получения инструкций по установке: Руководство> Установка Apache Ant > Получение Ant > .. следуйте инструкциям

  • переместить извлеченную папку (содержащую папку bin) в C:\source_code\apache-ant-1.8.3\ или в каталог, используемый в переменной среды%ANT_HOME%

  • Windows 7 > Панель управления> Система> нажмите кнопку "Переменные среды">

(убрать завершающий символ "\" в переменных среды)

  • в разделе "Системные переменные" нажмите "Добавить"> Имя переменной: JAVA_HOME Значение переменной: C:\Program Files\Java\jdk1.7.0_02

  • в разделе "Системные переменные" нажмите "Добавить"> Имя переменной: ANT_HOME Значение переменной: C:\source_code\apache-ant-1.8.3

  • в разделе "Системные переменные" щелкните переменную среды "Путь", нажмите "Изменить"> Имя переменной: значение переменной пути: {значение до редактирования};%JAVA_HOME%\bin;%ANT_HOME%\bin;

  • перезапустите командную строку (запуск от имени администратора)

  • убедитесь, что Windows видит Apache Ant:

    C: \ source_code \ apache-ant-1.8.3> ant-версия Apache Ant(TM) версии 1.8.3, скомпилированная 26 февраля 2012 г.

  • перейдите на http://ant.apache.org/ > Руководство> Установка Apache Ant > Установить Ant>

========================

Ошибка FTP:

C:\source_code\apache-ant-1.8.3>ant -f fetch.xml -Ddest=system
Buildfile: C:\source_code\apache-ant-1.8.3\fetch.xml

pick-dest:
     [echo] Downloading to C:\source_code\apache-ant-1.8.3\lib

...

-fetch-netrexx:
      [ftp] getting files

BUILD FAILED
C:\source_code\apache-ant-1.8.3\fetch.xml:325: The following error occurred whil
e executing this line:
C:\source_code\apache-ant-1.8.3\fetch.xml:144: java.net.SocketException: Permiss
ion denied: recv failed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:273)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
        at org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStr
eam.java:114)
        at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream
.java:535)
        at java.lang.Thread.run(Thread.java:722)

Total time: 3 seconds

C:\source_code\apache-ant-1.8.3>

==============

Я попытался сделать входящее и исходящее правило брандмауэра Windows, чтобы пропустить эту программу.

%ProgramFiles%\Java\jdk1.7.0_02\bin\java.exe

Я также попытался запустить команду с параметром, который они упоминают в обходном пути.

C:\source_code\apache-ant-1.8.3>ant -f fetch.xml -Ddest=system -Djava.net.preferIPv4Stack=true

3 ответа

Решение

Запустите это из командной строки Windows (Запуск от имени администратора) в качестве обходного пути, чтобы отключить фильтрацию FTP с сохранением состояния, чтобы брандмауэр Windows не блокировал трафик FTP.

netsh advfirewall set global StatefulFtp disable

В моем случае запуск cmd от имени администратора, а затем выполнение

ant -f fetch.xml -Ddest=system

как описано в документации - выполнил задание без изменения настроек брандмауэра или загрузки зависимости вручную!

Решение MacGyver не работает для моего компьютера на работе. Поэтому я попробовал что-то еще:

Я смог загрузить NetRexx.zip с ftp://ftp.software.ibm.com/software/awdtools/netrexx/ в%HOME%/. Ant / tempcache /, используя firefox.

Потом я переименовал lib/commons-net.jar в lib/__commons-net.jar__, чтобы установить для свойства "have.commons.net" значение false. Таким образом, целевой -fetch-netrexx пропускается, поскольку свойство имеет значение false, а -fetch-netrexx-no-commons-net пропускает, поскольку файл уже существует.

Я побежал

ant -f fetch.xml -Ddest=system netrexx

это был последний шаг, так что моя установка была завершена.

Осталось только переименовать в commons-net.jar

Другие вопросы по тегам