web-dev-qa-db-fra.com

ant junit build erreur dans eclipse

J'espère qu'il y a des gens qui ont vu et qui ont une solution au problème que j'ai actuellement avec ant script. J'utilise un script ant pour compiler mes codes Java dans Eclipse, mais Eclipse continue de me donner ces erreurs

[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

Paramètres de mon environnement:

  • Windows 7
  • Eclipse 3.6 RC2 32 bits
  • JDK 1.6 mise à jour 32 32 bits
  • Ant 1.7.2
  • Junit 4 (dans Eclipse): dans mon dossier jar, javit-dep-4.8.2.jar

Une chose à mentionner est que si je compile mes codes en dehors d’Eclipse en utilisant le même script ant, tout fonctionne parfaitement, mais cela ne fonctionne pas dans Eclipse. J'ai essayé de google les erreurs ci-dessus de la feuille de style ci-dessus, mais cela ne m'a pas beaucoup aidé. À mon avis, une version différente de Junit est utilisée dans Eclipse, mais je me trompe peut-être. 

21
Tuan

J'ai rencontré le même problème de feuille de style dans Eclipse en utilisant l'environnement suivant:

  • Windows 7 x64
  • Eclipse 3.7.2 (SR2) 32 bits
  • JDK 1.6.0_32 32 bits
  • Ant 1.7.2 (à partir d'Eclipse) ou 1.7.4 (à partir d'Apache, actuel)
  • Junit 4.8.1 (dépendance du projet)

Ma construction réussissant avec JDK 1.6.0_31, il semble donc que le problème de la feuille de style est un bogue Ant ou Java introduit avec la version 32 de Java 6. Je n’ai trouvé aucun rapport dans le système Bugzilla d’Apache. Si cela peut aider quelqu'un, ce sont les corrections de bogues incluses dans la version 32: http://www.Oracle.com/technetwork/Java/javase/2col/6u32bugfixes-1579554.html

Ma solution actuelle consiste à utiliser Java 6 JDK version 31.

Mise à jour: solution de contournement pour utiliser un JDK plus récent

Les échecs Ant de inside Eclipse ont démarré avec un défaut introduit dans Java 6u32 et Java7u4. La saga est décrite dans le Eclipse Bogue n ° 384757 , y compris une solution de contournement vous permettant d’utiliser des JDK plus récents.

  • Téléchargez les plug-ins org.Apache.xalan et org.Apache.xml.serializer à partir du projet Eclipse Orbit
  • Copiez-les dans un répertoire répertorié dans la propriété Java Java.ext.dirs

J'utilise les répertoires suivants car ils sont définis par défaut et indépendamment de la version de JDK:

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

Le problème racine a été signalé à Oracle, mais le bogue ne figure plus dans leur base de données de bogues . Je ne suis pas optimiste, cela ne sera jamais réglé.

Mise à jour: Apache a corrigé le problème dans Ant

Apache a résolu le problème fondamental. il est peut-être disponible dans la version Ant 1.9.0 ( Apache Bug n ° 54641 ).

Mise à jour: Ant 1.9.1 prévu pour Eclipse 4.4

Comme mentionné par @OliBlogger, Apache a corrigé le problème racine dans Ant 1.9.1. Eclipse a l'intention de mettre à jour vers Ant 1.9.1 dans Eclipse 4.4 (peut-être plus tôt, le système de bogues d'Eclipse n'a pas encore de jalons 4.3.x).

Mise à jour: corrigé dans Eclipse 4.4

J'ai confirmé que ma version réussissait désormais avec Java 7 JDK build 67 et Ant 1.9.2 distribués avec Eclipse 4.4.1 (Windows 7) sans utiliser la solution de contournement du plug-in Orbit.

17
Steven Darnell

Essayez d’aller dans Preferences->Ant->Runtime et de définir Ant Home ... dans votre dossier d’installation de ant. Par défaut, Eclipse est fourni avec et utilise une fourmi contribuée en tant que plug-in.

Vous pouvez également y ajouter des fichiers jar, des dossiers si nécessaire.

7

Il a été indiqué dans https://bugs.Eclipse.org/bugs/show_bug.cgi?id=384757#c18 que le correctif pour cela était dans Ant 1.9 mais malheureusement, il semble être bloqué pour 1.9.1 maintenant . En attendant, cela a fonctionné pour moi.

Vous pouvez utiliser les feuilles de style de http://svn.Apache.org/viewvc?view=revision&revision=1453414 . Ajoutez ensuite "stledir" à la balise de rapport. exemple: styledir="c:\utils"

1
Bill

J'ai essayé d'utiliser quelques paramètres JRE/JDK différents (tous 1.6 et 1.7) avec des problèmes ineach.

Ce n'est évidemment pas une solution parfaite, mais je ne semble pas rencontrer de problèmes de ce type si le rapport JUnit est "brut" dans le fichier de construction, et non encapsulé dans une cible.

Une solution de contournement médiocre dans le sens où les cibles sont un aspect important de Ant, mais parfois, la création de rapports sur les cibles/dépendances de construction ne sont pas aussi critiques. Ce n'est pas un problème pour moi pour l'instant car je rédige ces rapports de manière ponctuelle plutôt que dans le cadre d'une compilation.

J'espère que cela aide quelqu'un, mais aussi que cela soit corrigé correctement.

0
jm0

Selon la documentation ici et ici , la tâche Ant, <JUnitReport> nécessite Apache Xalan 2.4.1+ ou Xalan XSLT. Ils peuvent être obtenus à partir de la bibliothèque externe, xalan.jar . Assurez-vous que vous avez ces dépendances.

0
IqbalHamid

J'ai eu un problème similaire. J'ai eu cette combinaison pour mon projet:

Java: jdk1.6.0_45 Ant: Eclipse\plugins\org.Apache.ant_1.8.2.v20120109-1030 Compilateur Java: 1.6

J'ai changé de Java pour JRE6 et cela fonctionnait parfaitement

0
Pallavi Singh