Временное решение для установки 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