2

我有异常

java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference outside eclipse in command line using maven.

gwt库在依赖项列表的顶部声明,并且正在使用GWT 2.5.1 。如何解决这个问题?请帮忙

4

2 回答 2

8

好吧,我弄清楚了问题所在。在我的 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 编译器产生冲突。为了解决这个问题,我需要像这样在 jasper 依赖项中添加一个排除项

        <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,排除它并将其包含为运行时

希望这可以帮助

于 2013-08-05T12:30:20.657 回答
0

对于 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 编译失败。我还不确定如何让 Jasper 编译和 GWT 编译在同一个项目中共存?

于 2016-03-14T19:11:41.867 回答