java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference
Я получил исключение
java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference outside eclipse in command line using maven.
Библиотеки gwt объявлены в верхней части списка зависимостей, и используется GWT 2.5.1. Как решить эту проблему? Пожалуйста помоги
2 ответа
Ну я разобрался в чем проблема. В моем 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>
Теперь, если по-прежнему нужна библиотека 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://stackru.com/questions/17991063/java-lang-nosuchfielderror-reportunuseddeclaredthrownexceptionincludedoccomment
exclude group: 'eclipse', module: 'jdtcore'
}
}
За исключением того, что я сделал это изменение, моя компиляция яшмы не удалась. Я еще не уверен, как я могу заставить компиляцию Jasper и GWT сосуществовать в одном проекте?