私は例外を得ました
java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference outside eclipse in command line using maven.
gwtライブラリは依存関係のリストの先頭で宣言されており、GWT 2.5.1が使用されています。この問題を解決するには?助けてください
私は例外を得ました
java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference outside eclipse in command line using maven.
gwtライブラリは依存関係のリストの先頭で宣言されており、GWT 2.5.1が使用されています。この問題を解決するには?助けてください
さて、私は何が問題なのかを理解しました。私の pom.xml には、この依存関係があります
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.7.0</version>
これに関する問題は、jasper レポートが jdtcore に依存していることです。
<dependency>
<artifactId>jdtcore</artifactId>
<groupId>eclipse</groupId>
<version>3.1.0</version>
</dependency>
jdtcore は実際には gwt コンパイラと競合します。この問題を解決するには、このようにジャスパーの依存関係に除外を追加する必要があります
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.7.0</version>
<exclusions>
<exclusion>
<artifactId>jdtcore</artifactId>
<groupId>eclipse</groupId>
</exclusion>
</exclusions>
</dependency>
Web アプリでまだ jdtcore ライブラリが必要な場合 (通常は jasper レポートを動的にコンパイルするため)、次のようにスコープ ランタイムで依存関係を追加できます。
<dependency>
<artifactId>jdtcore</artifactId>
<groupId>eclipse</groupId>
<version>3.1.0</version>
<scope>runtime</scope>
</dependency>
最後に、誰かが問題を抱えている場合は、pom.xml の依存関係が jdtcore に依存しているかどうかを確認し、それを除外してランタイムとして含める必要があります。
お役に立てれば
gradle の場合、build.gradle で次のように推移的な依存関係を除外します。
dependencies {
compile('net.sf.jasperreports:jasperreports:3.7.4') {
//Exclude as it caused problems with GWT:
//http://stackoverflow.com/questions/17991063/java-lang-nosuchfielderror-reportunuseddeclaredthrownexceptionincludedoccomment
exclude group: 'eclipse', module: 'jdtcore'
}
}
この変更を行った後を除いて、ジャスパーのコンパイルは失敗します。Jasper コンパイルと GWT コンパイルを同じプロジェクトに共存させるにはどうすればよいか、まだわかりません。