2012-05-10 22 views
21

Mam nadzieję, że są ludzie, którzy widzieli i mają rozwiązanie problemu, który mam teraz ze skryptem mrówki. Używam skryptu Ant skompilować moje kody java w Eclipse, ale zaćmienie utrzymuje dając mi te błędyBłąd budowania mrówek junit wewnątrz 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 

moje ustawienia środowiskowe:

  • Windows 7
  • Eclipse 3.6 RC2 32 bit
  • Aktualizacja JDK 1.6 32 32 bit
  • Ant 1.7.2
  • Junit 4 (w zaćmieniu): w folderze jar projektu mam junit-dep -4.8.2.jar

Jedna rzecz, o której wspomnę, że jeśli skompiluję moje kody poza zaćmieniem przy użyciu tego samego skryptu mrówki, wszystko działa dobrze, ale nie działa w czasie zaćmienia. Próbowałem wyszukiwać błędy powyżej powyższego arkusza stylów, ale to mi nie pomogło. Zgaduję, że w czasie zaćmienia używana jest inna wersja junit, ale mogę się mylić.

Odpowiedz

7

Proszę przejść do Preferences->Ant->Runtime i ustawić Ant Home ... tam do folderu instalacji ant. Domyślnie Eclipse zawiera i używa mrówki wniesionej jako wtyczka.

W razie potrzeby można również dodać dodatkowe słoiki, foldery.

+0

Dzięki za szybką odpowiedź. Ustawiłem mrówkę w domu na folder instalacji mrówek, ale to nie pomogło mi rozwiązać tych błędów. – Tuan

+0

Chciałbym również wiedzieć, czy muszę dodać dodatkowe pliki jar dla ant (działa w moim eclipse), aby rozwiązać te pliki? Jeśli muszę dodać więcej plików JAR, co by to było i gdzie mógłbym je dodać? – Tuan

+0

To samo miejsce w preferencjach. –

17

przeżyłem ten sam problem w Eclipse przy użyciu arkusza stylów następujące środowiska:

  • Windows 7 x64
  • Eclipse 3.7.2 (SR2) 32-bitowy
  • JDK 1.6.0_32 32-bitowy
  • Ant 1.7.2 (Eclipse) lub 1.7.4 (od Apache'u, obecnie)
  • Junit 4.8.1 (zależności projektu)

Moja kompilacja kończy się sukcesem przy użyciu JDK 1.6.0_31, więc wygląda na to, że problem z arkuszem stylów to błąd Ant lub Java wprowadzony wraz z wydaniem wersji Java 6 32. Nie mogłem znaleźć żadnych raportów w systemie Bugzilla firmy Apache. Jeśli to pomoże komuś, są to poprawki zawarte w budowie 32: http://www.oracle.com/technetwork/java/javase/2col/6u32bugfixes-1579554.html

Moje bieżące obejście jest użycie Java 6 JDK zbudować 31.

Aktualizacja: Obejście używać nowszej JDK

Awaria Ant od w ramach Eclipse rozpoczęła się od defektu wprowadzonego w Javie 6u32 i Java7u4. Saga jest zgłaszana w numerze Eclipse Bug #384757, w tym obejście umożliwiające korzystanie z nowszych JDK.

  • pobrać wtyczki z Eclipse Orbit project
  • org.apache.xalan i org.apache.xml.serializer Skopiować je do katalogu wymienionym w nieruchomości Java java.ext.dirs

używam następujące katalogi, ponieważ są one zdefiniowane domyślnie i niezależny wersji JDK:

  • Na Windows: C:\Windows\Sun\Java\lib\ext
  • Na Mac: /Users/$USER/Library/Java/Extensions

Problem główny został zgłoszony do Oracle, ale the bug is no longer in their bug database. Nie jestem optymistą, nigdy go nie naprawię.

Aktualizacja: Apache rozwiązaniu problemu w Ant

Apache rozwiązaniu problemu głównego; może być dostępny w wydaniu Ant 1.9.0 (Apache Bug #54641).

Aktualizacja: Ant 1.9.1 zaplanowano na Eclipse 4.4

Jak wspomniano @OliBlogger, Apache rozwiązaniu problemu głównego w Ant 1.9.1. Eclipse planuje na update to Ant 1.9.1 in Eclipse 4.4 (być może wcześniej system błędów Eclipse nie ma jeszcze kamieni milowych 4.3.x).

Update: Poprawiono w Eclipse 4.4

I potwierdził, że mój build powiedzie teraz za pomocą Java JDK 7 zbudować 67 i Ant 1.9.2 dystrybuowany z Eclipse 4.4.1 (Windows 7) bez użycia Orbit plug w obejściu.

+0

@Tyler, przepraszam, że przegapiłem twój komentarz. Zostało ukryte przez link pokaż więcej komentarzy. –

+0

Nadal nie znalazłem prawdziwego rozwiązania problemu. Zgłosiłem błąd do Eclipse: [Bug 384757] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757). –

+0

Innym obejściem jest uruchomienie skryptu ant poza Eclipse. To działało dla mnie bez zmiany mojego obecnego jdk. – Tuan

0

Próbowałem już przy użyciu kilku różnych ustawień JRE/JDK (wszystkie 1.6 i 1.7) z problemami ineach.

Oczywiście nie jest to doskonałe rozwiązanie, ale wydaje mi się, że nie napotkam tych problemów, jeśli raport JUnit jest "surowy" w pliku kompilacji - nie jest zawarty w tarczy.

Niewłaściwe obejście tego problemu jest ważnym aspektem Ant, ale czasami raportowanie celów/zależności kompilacji nie jest tak ważne dla misji. Nie stanowi to dla mnie problemu, ponieważ generuję te raporty w formie jednorazowej, a nie częściowej.

Mam nadzieję, że ktoś pomoże, ale także nadzieję, że to zostanie prawidłowo ustalona.

0

Miałem podobny problem. Miałem to połączenie dla mojego projektu:

Java: jdk1.6.0_45 Ant: eclipse \ plugins \ org.apache.ant_1.8.2.v20120109-1030 Kompilator Java: 1.6

Zmieniłem java na JRE6 i działało absolutnie dobrze

Powiązane problemy