2011-11-23 8 views
5

私の私のEclipse環境内から蟻1.7を経由して実行JUnitテストが、ビルドfailesに失敗:Antの<junitreport>があるため、安全な処理機能のXalanの(XSLT)の

BUILDは をFAILED ... /build.xml:222:変換を適用する際のエラー: javax.xml.transform.TransformerException:java.lang.RuntimeException: 拡張機能 'xalan://org.apache.tools.ant.util.StringUtilsの使用: [を置換する]は、セキュア処理機能がtrueに設定されている場合は許可されません。

私はjunitreportタスクが(私が必要と、この時点で私の方法であるだけではありません)セキュアな処理機能を無効にする方法を把握することを試みたが、タスクは「doesnのため、私はどのよう見当もつかないそれを無効にする属性があります。あるいは、私はこの仕事をするために何か他のことをする必要がありますか?

答えて

3

これは、非常によく似たknown bug in Ant 1.8.2に関連している可能性があります。

bugfix for Ant 1.8.3がコミットされていますが、Apache Antを1.8.3には、このバグ修正のための新着情報の記述がある1月25日、2012年のとしてリリースされるまだあり:Antの1.8.3がリリースされたら

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

とEclipse Antプラグインに組み込まれている場合、この問題は解決されるはずです。

その間、Eclipse内ではなくコマンドラインからAntを実行している場合にのみ、JUnitReportターゲットを実行するようにビルドスクリプトを編集できます。この決定を行うには、通常の%ANT_HOME%/ libフォルダーにあるファイルをEclipse Antプラグイン・フォルダーに存在しない(またはそこにファイルを作成していない)ものを探し、ファイルが検出された場合はプロパティーを設定します。例えば。ちょうどあなたのJUnitターゲットの終了前に

:あなたのJUnitReportターゲットの開始時に

<available file="${ant.home}/lib/ant.pom" property="full.ant"/> 

ant.homeに設定されているため、

<target name="junitreport" description="Create a consolidated test results report" if="full.ant"> 

上記のAntの断片が働きますEclipse Antプラグインフォルダは、AntがEclipse内から実行されている場合にのみ使用します。 Antがコマンドラインから実行された場合、ant.homeは、ANT_HOME環境変数に一致します。 eclipse.running Antプロパティもあるはずですが、このプロパティを検出できませんでした。

もう1つの暫定的なオプションは、Apach Antプロジェクトページのthis linkからAntの夜間ビルドの最新のJARファイルをダウンロードし、それらのJARファイルを対応するEclipse Antプラグインサブフォルダに配置することです。これが動作する保証はありません。

0

私はjunitreportタスクをセキュアな処理機能を無効にする方法を見つけようとしましたが(これは私が必要とせず、今のところ私の方法です)、しかし、それを無効にする属性があります。

いつでもタスクをコメントアウトできます。

+0

あなたの答えをありがとう。おそらく、私の判決はすべて明らかではなかったでしょう。私は '安全な処理機能'を無効にしたいと思いますが、私はjunitreportが必要です。 – Almer

関連する問題