我希望有些人已经看到并解决了我现在使用ant脚本的问题。我正在使用ant脚本在eclipse中编译我的java代码,但是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
我的环境设置:
有一点要提一下,如果我使用相同的ant脚本在eclipse之外编译我的代码,一切正常,但它在eclipse中不起作用。我试图谷歌上面的样式表上面的错误,但这对我没有多大帮助。我的猜测是某种方式,在eclipse中使用不同版本的junit,但我可能错了。
答案 0 :(得分:17)
我使用以下环境在Eclipse中遇到了相同的样式表问题:
我的构建在使用JDK 1.6.0_31时成功,因此看起来样式表问题是随Java 6 build 32发布的Ant或Java错误。我在Apache的Bugzilla系统中找不到任何报告。如果它对某人有帮助,那么这些是构建32中包含的错误修复:http://www.oracle.com/technetwork/java/javase/2col/6u32bugfixes-1579554.html
我目前的解决方法是使用Java 6 JDK build 31。
更新:使用较新JDK的解决方法
Eclipse中的Ant故障始于Java 6u32和Java7u4中引入的缺陷。该问题在Eclipse Bug #384757中报告,包括允许您使用较新JDK的解决方法。
org.apache.xalan
和org.apache.xml.serializer
个插件
java.ext.dirs
属性我使用以下目录,因为它们是默认定义的,与JDK版本无关:
C:\Windows\Sun\Java\lib\ext
/Users/$USER/Library/Java/Extensions
向Oracle报告了根问题,但是the bug is no longer in their bug database。我不乐观,它将永远修复。
更新:Apache修复了Ant中的问题
Apache修复了根本问题;它可能在Ant 1.9.0版本(Apache Bug #54641)中可用。
更新:计划用于Eclipse 4.4的Ant 1.9.1
正如@OliBlogger所提到的,Apache修复了Ant 1.9.1中的根本问题。 Eclipse计划update to Ant 1.9.1 in Eclipse 4.4(也许更早,Eclipse bug系统还没有4.3.x里程碑)。
更新:已在Eclipse 4.4中修复
我确认我的构建现在使用Java 7 JDK build 67和Ant 1.9.2与Eclipse 4.4.1(Windows 7)一起分发,而不使用Orbit插件解决方法。
答案 1 :(得分:7)
请尝试转到Preferences->Ant->Runtime
并将Ant Home ...设置为您的ant安装文件夹。默认情况下,eclipse随附并使用作为插件提供的ant。
如果需要,您还可以添加其他广告文件夹。
答案 2 :(得分:1)
在https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757#c18中已经说明了这个问题的解决方案是在Ant 1.9中,但遗憾的是它现在似乎已经在1.9.1中进行了调整。所以在这段时间里,这对我有用。
您可以使用http://svn.apache.org/viewvc?view=revision&revision=1453414中的样式表。
然后将“stledir”添加到报告代码中。例如:styledir="c:\utils"
答案 3 :(得分:0)
我尝试过使用一些不同的JRE / JDK设置(全部为1.6和1.7),并且存在问题。
它显然不是一个完美的解决方案,但如果JUnit报告是" raw"我似乎不会遇到这些问题。在构建文件中 - 不包含在目标中。
显然,不良的解决方法是目标是Ant的一个重要方面,但有时报告构建目标/依赖关系并不是关键任务。对我而言,这不是一个问题,因为我以一次性的方式运行这些报告,而不是作为构建的一部分。
希望它对某人有所帮助,但也希望能得到妥善解决。
答案 4 :(得分:0)
我有类似的问题。我的项目有这个组合:
Java:jdk1.6.0_45 Ant:eclipse \ plugins \ org.apache.ant_1.8.2.v20120109-1030 Java编译器:1.6
我将我的java更改为JRE6并且它工作得很好
答案 5 :(得分:0)