Ant Ошибка сборки junit внутри eclipse
Я надеюсь, что есть люди, которые видели и имеют решение проблемы, с которой я сейчас сталкиваюсь с ant script. Я использую ant script для компиляции моих java-кодов в eclipse, но eclipse продолжает давать мне эти ошибки.
[junitreport] Processing E:\workspace\DataOrchestrationDevelopment\DataOrchestration\Logs\jsreports\junit\html\TESTS-TestSuites.xml to C:\Users\u0160235\AppData\Local\Temp\null1503375679
[junitreport] Loading stylesheet jar:file:/E:/software/apache/apache-ant-1.8.2/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl
[junitreport] : Error! The first argument to the non-static Java function 'replace' is not a valid object reference.
[junitreport] : Error! Cannot convert data-type 'void' to 'reference'.
[junitreport] : Fatal Error! Could not compile stylesheet
[junitreport] Failed to process E:\workspace\DataOrchestrationDevelopment\DataOrchestration\Logs\jsreports\junit\html\TESTS-TestSuites.xml
BUILD FAILED
E:\workspace\DataOrchestrationDevelopment\DataOrchestration\ant\developerbuild.xml:124: The following error occurred while executing this line:
E:\workspace\DataOrchestrationDevelopment\DataOrchestration\ant\QunitAntScript.xml:20: Errors while applying transformations: Fatal error during transformation
Настройки моей среды:
- Windows 7
- Eclipse 3.6 RC2 32 бит
- Обновление JDK 1.6 32 32 бит
- Ant 1.7.2
- Junit 4 (in eclipse): в моей папке jar проекта у меня есть junit-dep-4.8.2.jar
Одна вещь, чтобы упомянуть, что если я скомпилирую свои коды за пределами eclipse с помощью того же ant script, все работает отлично, но это не работает внутри eclipse. Я попытался сделать ошибки Google выше таблицы стилей выше, но это не очень помогло мне. Я предполагаю, что так или иначе, внутри eclipse используется другая версия junit, но я могу ошибаться.
Ответы
Ответ 1
В Eclipse я столкнулся с той же проблемой таблиц стилей, используя следующую среду:
- Windows 7 x64
- Eclipse 3.7.2 (SR2) 32-разрядный
- JDK 1.6.0_32 32-разрядный
- Ant 1.7.2 (из Eclipse) или 1.7.4 (из Apache, current)
- Junit 4.8.1 (зависимость проекта)
Моя сборка успешно используется при использовании JDK 1.6.0_31, поэтому проблема с таблицей стилей - это ошибка Ant или Java, представленная с выпуском Java 6 build 32. Я не мог найти никаких отчетов в системе Apache Bugzilla. Если это помогает кому-то, это исправления ошибок, включенные в сборку 32: http://www.oracle.com/technetwork/java/javase/2col/6u32bugfixes-1579554.html
Мое текущее обходное решение - использовать Java 6 JDK build 31.
Обновление: обходной путь для использования нового JDK
Сбой Ant из Eclipse начался с дефекта, введенного в Java 6u32 и Java7u4. Сага сообщается в Eclipse Bug # 384757, включая обходной путь, позволяющий использовать новые JDK.
- Загрузите плагины
org.apache.xalan
и org.apache.xml.serializer
из проект Eclipse Orbit
- Скопируйте их в каталог, указанный в свойстве Java
java.ext.dirs
Я использую следующие каталоги, потому что они определены по умолчанию и не зависят от версии JDK:
- В Windows:
C:\Windows\Sun\Java\lib\ext
- На Mac:
/Users/$USER/Library/Java/Extensions
Основная проблема была сообщена Oracle, но ошибка больше не находится в базе данных ошибок. Я не оптимист, это когда-нибудь будет исправлено.
Обновление: Apache исправил проблему в Ant
Apache исправил проблему с корнем; он может быть доступен в версии Ant 1.9.0 (Apache Bug # 54641).
Обновление: Ant 1.9.1 запланировано для Eclipse 4.4
Как упоминал @OliBlogger, Apache исправил корень проблемы в Ant 1.9.1. Eclipse планирует обновить до Ant 1.9.1 в Eclipse 4.4 (возможно, скорее, система ошибок Eclipse еще не имеет вехи 4.3.x).
Обновление: исправлено в Eclipse 4.4
Я подтвердил, что моя сборка теперь преуспевает с использованием Java 7 JDK build 67 и Ant 1.9.2, распространяемых вместе с Eclipse 4.4.1 (Windows 7) без использования обходного пути плагина Orbit.
Ответ 2
Попробуйте перейти к Preferences->Ant->Runtime
и установите Ant Home... в папку установки Ant. По умолчанию eclipse поставляется с и использует Ant в качестве плагина.
Вы также можете добавить туда дополнительные банки, папки при необходимости.
Ответ 3
В https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757#c18 было указано, что исправление для этого было в Ant 1,9, но, к сожалению, оно похоже на sechduled для 1.9. 1 сейчас. Так что в то же время это сработало для меня.
Вы можете использовать таблицы стилей из http://svn.apache.org/viewvc?view=revision&revision=1453414.
Затем добавьте "stledir" в тег отчета. Пример: styledir="c:\utils"
Ответ 4
Я пробовал использовать несколько различных настроек JRE/JDK (все версии 1.6 и 1.7) с проблемами в каждом из них.
Это не идеальное решение, но я, похоже, не сталкиваюсь с этими проблемами, если отчет JUnit является "сырым" в файле сборки - не завернут в цель.
Плохое обходное решение, очевидно, в этих целях является важным аспектом Ant, но иногда для отчетов целей/зависимостей сборки не так важны критические задачи. Это не так много для меня, потому что я использую эти отчеты в виде одноразовой моды, а не как часть сборки.
Надеюсь, что это поможет кому-то, но также надеюсь, что это исправится должным образом.
Ответ 5
У меня была аналогичная проблема. У меня была эта комбинация для моего проекта:
Java: jdk1.6.0_45 Ant: eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030 Компилятор Java: 1.6
Я изменил свой java на JRE6, и он работал абсолютно нормально