gpt4 book ai didi

eclipse - 由于 Xalan 的 (XSLT) 安全处理功能,Ant 失败

转载 作者:行者123 更新时间:2023-12-04 15:36:24 26 4
gpt4 key购买 nike

我的 junit 测试在我的 Eclipse 环境中通过 ant 1.7 运行,但在执行 junitreport 任务时构建失败:

BUILD FAILED .../build.xml:222: Errors while applying transformations: javax.xml.transform.TransformerException: java.lang.RuntimeException: Use of the extension function 'xalan://org.apache.tools.ant.util.StringUtils:replace' is not allowed when the secure processing feature is set to true.



我试图弄清楚如何让 junitreport 任务禁用安全处理功能(我不需要,目前只在我的方式中),但我不知道如何,因为该任务没有禁用的属性它。或者我应该做其他事情来完成这项工作吗?

最佳答案

这可能与一个非常相似的known bug in Ant 1.8.2有关.

bugfix for Ant 1.8.3已提交,但截至 2012 年 1 月 25 日,Apache Ant 1.8.3 尚未发布。此错误修复的最新消息描述是:

<junitreport> did not work in embedded environments on JDK 7.
Bugzilla Report 51668.

一旦 Ant 1.8.3 发布并被合并到 Eclipse Ant 插件中,这个问题就应该得到解决。

同时,您可以编辑构建脚本,使其仅在从命令行运行 Ant 时才运行 JUnitReport 目标,而不是从 Eclipse 中运行。要做出此决定,请查找常规 中存在的文件。 %ANT_HOME%/lib Eclipse Ant 插件文件夹中不存在的文件夹(或在那里创建一个文件),然后在检测到文件时设置一个属性。例如。

就在您的 JUnit 目标结束之前:
<available file="${ant.home}/lib/ant.pom" property="full.ant"/>

在 JUnitReport 目标的开头:
  <target name="junitreport" description="Create a consolidated test results report" if="full.ant">

上述 Ant 片段之所以有效是因为 Ant 之家仅当从 Eclipse 中运行 Ant 时,才设置为 Eclipse Ant Plugin 文件夹。当从命令行运行 Ant 时, Ant 之家将匹配您的 ANT_HOME 环境变量。也应该有一个 eclipse.running Ant 属性,但我无法检测到此属性。

另一个临时选项是从 this link 下载 Ant nightly builds 的最新 JAR 文件。在 Apache Ant 项目页面上,然后将这些 JAR 文件放在相应的 Eclipse Ant 插件子文件夹中。不能保证这会起作用。

关于eclipse - 由于 Xalan 的 (XSLT) 安全处理功能,Ant <junitreport> 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com