2012-05-10 9 views
21

Spero che ci siano alcune persone che hanno visto e hanno una soluzione per il problema che sto avendo adesso con lo script ant. Sto usando uno script Ant per compilare i miei codici java in Eclipse, ma Eclipse continua a darmi questi erroriant junit errore di compilazione all'interno di eclissi

[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 

mia configurazione ambiente:

  • Windows 7
  • Eclipse 3.6 RC2 a 32 bit
  • Aggiornamento JDK 1.6 32 32 bit
  • Ant 1.7.2
  • Junit 4 (all'interno di eclissi): nella cartella jar del mio progetto ho junit-dep -4.8.2.jar

Una cosa da dire che se compilo i miei codici all'esterno di eclipse usando lo stesso script ant, tutto funziona perfettamente, ma non funziona all'interno di eclipse. Ho provato a cercare su Google gli errori sopra il foglio di stile sopra, ma questo non mi ha aiutato molto. La mia ipotesi è in qualche modo, all'interno di eclissi viene utilizzata una versione diversa di junit, ma potrei sbagliarmi.

risposta

7

Provare per andare a Preferences->Ant->Runtime e impostare Ant Home ... lì nella cartella di installazione della tua formica. Per impostazione predefinita, eclipse viene fornito e utilizza un formatore come plug-in.

È inoltre possibile aggiungere ulteriori barattoli, cartelle se necessario.

+0

Grazie per la risposta rapida. Ho impostato la mia casa ant sulla cartella di installazione della formica, ma questo non mi ha aiutato a risolvere quegli errori. – Tuan

+0

Vorrei anche sapere se ho bisogno di aggiungere altri file jar per ant (che corrono dentro la mia eclissi) per risolvere quei file? Se devo aggiungere altri file jar, quali sarebbero e dove dovrei aggiungerli? – Tuan

+0

Lo stesso posto nelle preferenze. –

17

ho sperimentato lo stesso problema foglio di stile all'interno di Eclipse utilizzando il seguente ambiente:

  • Windows 7 x64
  • Eclipse 3.7.2 (SR2) a 32 bit
  • JDK 1.6.0_32 a 32 bit
  • Ant 1.7.2 (da Eclipse) o 1.7.4 (da Apache, corrente)
  • Junit 4.8.1 (progetto dipendenza)

La mia build ha successo durante l'utilizzo di JDK 1.6.0_31, quindi sembra che il problema del foglio di stile sia un bug Ant o Java introdotto con il rilascio di Java 6 build 32. Non sono riuscito a trovare alcun rapporto nel sistema Bugzilla di Apache. Se aiuta qualcuno, queste sono le correzioni di bug incluse in costruzione 32: http://www.oracle.com/technetwork/java/javase/2col/6u32bugfixes-1579554.html

mia soluzione attuale è quella di usare Java JDK 6 costruire 31.

Update: soluzione alternativa di utilizzare una più recente JDK

Gli errori della formica da all'interno di Eclipse è iniziato con un difetto introdotto in Java 6u32 e Java7u4. La saga è riportata in Eclipse Bug #384757, inclusa una soluzione alternativa che consente di utilizzare JDK più recenti.

  • Scarica le org.apache.xalan e org.apache.xml.serializer plug-in dal Eclipse Orbit project
  • copiarli in una directory elencata nella proprietà Java java.ext.dirs

Io uso le seguenti directory perché sono definiti per impostazione predefinita e indipendenti Dalla versione JDK:

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

Il problema principale è stato segnalato per Oracle, ma the bug is no longer in their bug database. Non sono ottimista, sarà mai risolto.

Aggiornamento: Apache ha risolto il problema in Ant

Apache ha risolto il problema alla radice; potrebbe essere disponibile nella versione 1.9.0 di Ant (Apache Bug #54641).

Aggiornamento: 1.9.1 Ant prevista per Eclipse 4,4

Come accennato @OliBlogger, Apache risolto il problema alla radice in Ant 1.9.1. Eclipse prevede di update to Ant 1.9.1 in Eclipse 4.4 (forse prima, il sistema di bug di Eclipse non ha ancora le pietre miliari 4.3.x).

Aggiornamento: fisso in Eclipse 4.4

ho confermato che la mia generazione ora riesce utilizzando Java 7 JDK costruire 67 e 1.9.2 Ant distribuito con Eclipse 4.4.1 (Windows 7) senza utilizzare il plug-Orbit in soluzione.

+0

@Tyler, scusami ho perso il tuo commento. È stato nascosto da un link di altri commenti. –

+0

Non ho ancora trovato una soluzione reale al problema. Ho segnalato il bug a Eclipse: [Bug 384757] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757). –

+0

Un'altra soluzione alternativa è eseguire lo script ant all'esterno di Eclipse. Questo ha funzionato per me senza cambiare il mio attuale jdk. – Tuan

0

Ho provato a utilizzare alcune impostazioni JRE/JDK diverse (tutte 1.6 e 1.7) con problemi ineach.

Ovviamente non è una soluzione perfetta, ma non mi sembra che incappi in questi problemi se il report JUnit è "raw" nel file build - non racchiuso in una destinazione.

Una soluzione scadente, ovviamente, in quanto gli obiettivi sono un aspetto importante di Ant, ma a volte per segnalare obiettivi di costruzione/dipendenze non sono così mission critical. Non è ancora un problema per me perché gestisco questi report in un certo senso piuttosto che come parte di una build.

Spero che aiuti qualcuno, ma spero anche che questo venga risolto correttamente.

0

Ho avuto un problema simile. Ho avuto questa combinazione per il mio progetto:

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

ho cambiato java per JRE6 e ha funzionato assolutamente bene

Problemi correlati