Alm*_*mer 6 eclipse ant xslt xalan
我的junit测试从我的Eclipse环境中通过ant 1.7运行,但是在执行junitreport任务时构建失败:
BUILD FAILED .../build.xml:222:应用转换时的错误:javax.xml.transform.TransformerException:java.lang.RuntimeException:使用扩展函数'xalan://org.apache.tools.ant.util当安全处理功能设置为true时,不允许使用.stringUtils:replace'.
我试图弄清楚如何使junitreport任务禁用安全处理功能(我不需要并且此时只是我的方式)但我不知道如何因为任务没有要禁用的属性它.或者我应该做些什么来使这项工作?
这可能与Ant 1.8.2 中一个非常相似的已知错误有关。
Ant 1.8.3 的错误修复已提交,但截至 2012 年 1 月 25 日,Apache Ant 1.8.3 尚未发布。此错误修复的 WHATSNEW 描述是:
<junitreport> did not work in embedded environments on JDK 7.
Bugzilla Report 51668.
Run Code Online (Sandbox Code Playgroud)
一旦 Ant 1.8.3 发布并合并到 Eclipse Ant 插件中,这个问题就应该得到解决。
同时,您可以编辑构建脚本,以便它仅在从命令行(而不是从 Eclipse 中)运行 Ant 时运行 JUnitReport 目标。要做出此确定,请查找常规%ANT_HOME%/lib文件夹中存在但 Eclipse Ant 插件文件夹中不存在的文件(或在其中创建一个文件),然后在检测到该文件时设置一个属性。例如
就在 JUnit 目标结束之前:
<available file="${ant.home}/lib/ant.pom" property="full.ant"/>
Run Code Online (Sandbox Code Playgroud)
在 JUnitReport 目标的开头:
<target name="junitreport" description="Create a consolidated test results report" if="full.ant">
Run Code Online (Sandbox Code Playgroud)
上述 Ant 片段之所以有效,是因为仅当 Ant 从 Eclipse 中运行时,ant.home才设置为 Eclipse Ant Plugin 文件夹。当从命令行运行 Ant 时,ant.home将匹配您的ANT_HOME环境变量。还应该有一个eclipse.running Ant 属性,但我无法检测到此属性。
另一个临时选项是从 Apach Ant 项目页面上的此链接下载 Ant nightly builds 的最新 JAR 文件,然后将这些 JAR 文件放入相应的 Eclipse Ant 插件子文件夹中。不保证这会起作用。
| 归档时间: |
|
| 查看次数: |
4156 次 |
| 最近记录: |