21

Ant スクリプトで現在抱えている問題を見て、解決策を持っている人がいることを願っています。Eclipse で Java コードをコンパイルするために Ant スクリプトを使用していますが、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

私の環境設定:

  • ウィンドウズ7
  • Eclipse 3.6 RC2 32 ビット
  • JDK 1.6 アップデート 32 32 ビット
  • アリ 1.7.2
  • Junit 4 (Eclipse 内): プロジェクトの jar フォルダーに junit-dep-4.8.2.jar があります

同じ ant スクリプトを使用して Eclipse の外部でコードをコンパイルすると、すべて正常に動作しますが、Eclipse 内では動作しません。上記のスタイルシートの上のエラーをグーグルで検索しようとしましたが、あまり役に立ちませんでした。私の推測では、どういうわけか、Eclipse 内で異なるバージョンの junit が使用されていますが、間違っている可能性があります。

4

6 に答える 6

17

次の環境を使用して、Eclipse 内で同じスタイルシートの問題が発生しました。

  • ウィンドウズ 7 x64
  • Eclipse 3.7.2 (SR2) 32 ビット
  • JDK 1.6.0_32 32 ビット
  • Ant 1.7.2 (Eclipse から) または 1.7.4 (Apache から、現在)
  • Junit 4.8.1 (プロジェクトの依存関係)

私のビルドは JDK 1.6.0_31 を使用している間は成功したので、スタイルシートの問題は Java 6 ビルド 32 のリリースで導入された Ant または Java のバグであると思われます。Apache の Bugzilla システムでレポートを見つけることができませんでした。それが誰かを助けるなら、これらはビルド 32 に含まれるバグ修正です: http://www.oracle.com/technetwork/java/javase/2col/6u32bugfixes-1579554.html

私の現在の回避策は、Java 6 JDK ビルド 31 を使用することです。

更新: 新しい JDK を使用するための回避策

Eclipse内での Ant の障害は、Java 6u32 および Java7u4 で導入された欠陥から始まりました。この問題はEclipse Bug #384757で報告されており、新しい JDK を使用できるようにする回避策が含まれています。

  • org.apache.xalanorg.apache.xml.serializerプラグインをEclipse Orbit プロジェクトからダウンロードします。
  • java.ext.dirsそれらをJavaプロパティにリストされているディレクトリにコピーします

次のディレクトリを使用します。これは、デフォルトで定義され、JDK のバージョンに依存しないためです。

  • Windows の場合:C:\Windows\Sun\Java\lib\ext
  • Mac の場合:/Users/$USER/Library/Java/Extensions

根本的な問題は Oracle に報告されましたが、バグは Oracle のバグ データベースにはありません。私はそれが修正されるとは楽観視していません。

更新: Apache は Ant の問題を修正しました

Apache は根本的な問題を修正しました。Ant 1.9.0 リリースで利用可能になる可能性があります ( Apache Bug #54641 )。

更新: Ant 1.9.1 は Eclipse 4.4 に予定されています

@OliBlogger が述べたように、Apache は Ant 1.9.1 で根本的な問題を修正しました。Eclipse は、Eclipse 4.4 で Ant 1.9.1 に更新する予定です (おそらく、Eclipse バグ システムにはまだ 4.3.x マイルストーンがありません)。

更新: Eclipse 4.4 で修正済み

Orbit プラグインの回避策を使用せずに、Java 7 JDK ビルド 67 と Eclipse 4.4.1 (Windows 7) で配布された Ant 1.9.2 を使用してビルドが成功することを確認しました。

于 2012-06-11T19:23:02.343 に答える
7

Preferences->Ant->RuntimeAnt ホームに移動して、そこにある Ant インストール フォルダに設定してみてください。デフォルトでは、eclipse にはプラグインとして提供された ant が付属しており、これを使用します。

必要に応じて、追加の jar、フォルダーを追加することもできます。

于 2012-05-10T14:51:49.070 に答える
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"

于 2013-04-17T17:10:45.997 に答える
0

それぞれに問題があるいくつかの異なる JRE/JDK 設定 (すべて 1.6 および 1.7) を使用してみました。

明らかに完璧な解決策ではありませんが、JUnitレポートがビルドファイルで「生」であり、ターゲットにラップされていない場合、これらの問題に遭遇することはないようです。

ターゲットが Ant の重要な側面であることは明らかですが、ビルド ターゲット/依存関係をレポートする場合、それほどミッション クリティカルではないことがあります。私はこれらのレポートをビルドの一部としてではなく、1 回限りの方法で実行しているので、私にとってはまだそれほど問題ではありません。

それが誰かを助けることを願っていますが、これが適切に修正されることも願っています.

于 2013-09-25T14:53:28.303 に答える
0

同様の問題がありました。私のプロジェクトにはこの組み合わせがありました:

Java: jdk1.6.0_45 Ant: eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030 Java コンパイラ: 1.6

JavaをJRE6に変更したところ、まったく問題なく動作しました

于 2015-02-02T20:09:42.233 に答える