当前位置: 首页 > 知识库问答 >
问题:

Eclipse中此GWT编译错误/依赖项冲突的补救措施?

公冶安怡
2023-03-14

在Eclipse中,我有一个maven项目正在进行,我正在向其中添加GWT。(所以这不是一个GoogleWeb应用程序项目)我列出了gwt部分和“gwt编译…”命令失败,结尾附加了消息。我发现在maven中删除tika工件(它具有asm依赖项)有助于继续gwt编译。

另一个问题是,当我尝试启动开发模式时,gwt sdk的JettyLancher无法启动,我想主要是因为我的pom中存在jetty 9.3。xml。

是否有任何eclipse用户有解决此类错误的方法?我认为如果有办法让GWTSDK在其自身的依赖项上运行,那将是和平的(这两个冲突不应该影响prod部署,它只是google eclipse插件工具在某种程度上依赖于项目的类路径)。

我可以将gwt部分分离到一个不同的项目中,但是将它们放在一起显然要方便得多。

GWT编译错误:

[ERROR] Unexpected internal compiler error
java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:78)
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:63)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker$CompileDependencyVisitor.<init>(BytecodeSignatureMaker.java:59)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker.visitCompileDependenciesInBytecode(BytecodeSignatureMaker.java:227)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker.getCompileDependencySignature(BytecodeSignatureMaker.java:209)
    at com.google.gwt.dev.javac.CompiledClass.getSignatureHash(CompiledClass.java:166)
    at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:42)
    at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:37)
    at com.google.gwt.dev.javac.Dependencies.resolve(Dependencies.java:114)
    at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:366)
    at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:580)
    at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:513)
    at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:499)
    at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:668)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:255)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
    at com.google.gwt.dev.Compiler.run(Compiler.java:206)
    at com.google.gwt.dev.Compiler.run(Compiler.java:158)
    at com.google.gwt.dev.Compiler$1.run(Compiler.java:120)
    at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
    at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
    at com.google.gwt.dev.Compiler.main(Compiler.java:127)

启动开发模式时出错:

Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.jetty.server.AbstractConnector: method <init>()V not found
    at org.eclipse.jetty.server.nio.AbstractNIOConnector.<init>(AbstractNIOConnector.java:30)
    at org.eclipse.jetty.server.nio.SelectChannelConnector.<init>(SelectChannelConnector.java:82)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.getConnector(JettyLauncher.java:803)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:729)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:632)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1054)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836)
    at com.google.gwt.dev.DevMode.main(DevMode.java:413)
java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:78)
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:63)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker$CompileDependencyVisitor.<init>(BytecodeSignatureMaker.java:59)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker.visitCompileDependenciesInBytecode(BytecodeSignatureMaker.java:227)
    at com.google.gwt.dev.javac.BytecodeSignatureMaker.getCompileDependencySignature(BytecodeSignatureMaker.java:209)
    at com.google.gwt.dev.javac.CompiledClass.getSignatureHash(CompiledClass.java:166)
    at com.google.gwt.dev.javac.Dependencies.validateClass(Dependencies.java:178)
    at com.google.gwt.dev.javac.Dependencies.validate(Dependencies.java:135)
    at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.removeInvalidCachedUnitsAndRescheduleCorrespondingBuilders(CompilationStateBuilder.java:430)
    at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:369)
    at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:580)
    at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:513)
    at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:499)
    at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:668)
    at com.google.gwt.dev.codeserver.Recompiler.initWithoutPrecompile(Recompiler.java:200)
    at com.google.gwt.dev.codeserver.Outbox.maybePrecompile(Outbox.java:82)
    at com.google.gwt.dev.codeserver.Outbox.<init>(Outbox.java:61)
    at com.google.gwt.dev.codeserver.CodeServer.makeOutboxes(CodeServer.java:156)
    at com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java:118)
    at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:91)
    at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.google.gwt.dev.shell.SuperDevListener$1.run(SuperDevListener.java:84)

共有1个答案

丌官盛
2023-03-14

所以,经过一些挖掘,我找到了解决这两个问题的方法。

1) GWT编译错误:

我检查了所有隐藏的asm-*依赖项,发现tika使用的一个(asm debug all)是4。x、 而所有其他asm依赖项都是5.0。3.我指定了5.0的显式依赖项。asm调试全部3个,gwt编译器很高兴。

2)GWT的DevMode启动:

在阅读https://github.com/gwtproject/gwt/issues/8712之后,我非常确定DevMode中的jetty应该是一个旧版本(它是一个8. x. y,因为我从日志中得到了gwt 2.7.0)。无法在eclipse中使用嵌入式Tomcat运行mavenizedGWT应用程序,建议重写ServletContainerLauncher,我不知道如何实现,并运行一个单独的Tomcat服务器作为codesver的主机。在修改了启动配置文件后,我了解到类路径中库的顺序可以更改,所以我将gwt-dev移动到项目的src类路径之上,宾果,开发模式运行顺利!

注意:在maven中添加gwt codeserver依赖项,并使其位于jetty条目之上,也可以让DevMode工作,但有了它,真正需要的jetty也将与8一起运行。x、 y版本。

 类似资料:
  • 我有一个具有以下依赖项的GWT项目 > Gin 2.1.2依赖于guice 3.0,而owlapi 4.0.2依赖于guice 4.0-beta。 gin在客户端使用,而owlapi在服务器端使用。 我有什么办法才能让这件事成功?我是否可以在保留正常运行的GWT devmode的同时使用依赖关系范围?

  • 我试了好几个小时想找到解决办法,但没有找到。我的问题是,当我建立我的梯度时,我得到了两个错误。我试图在我的Android应用程序中查看这个解决方案依赖冲突错误,该应用程序进行了Android测试,但仍然无法解决这个问题。 这是我的建筑。格雷德尔 我该怎么解决这个?

  • 我试图解决这个梯度错误,我从我的一个朋友那里引进了这个项目,它在他的系统中运行得很好。好像我有以下问题在我的年级。 错误:与项目“:App”中得依赖项“com.android.support:support-annotations”冲突.应用程序(27.0.2)和测试应用程序(25.4.0)的解析版本不同。

  • 异常堆栈跟踪 eclipse.buildid=4.6.2.m20161124-1400 java.version=1.8.0_121 java.vendor=Oracle Corporation BootLoader常量:OS=win32,arch=x86_64,ws=win32,nl=en_us框架参数:-product org.eclipse.epp.package.jee.product命令

  • 由一些模块组成的maven项目。我的一个模块正在使用google版本的guava依赖项。现在,我正在我的项目中集成另一个模块,该模块也使用guava但版本。 因此,我希望新模块使用guava版本,而其余项目使用guava版本。我尝试将guava的添加到新模块中,但没有成功。 更新:@Guillaume Darmont的答案为不同的模块解决了问题。但现在我的问题是,新模块有两个依赖项,其中一个使用g

  • 错误为:java.security.NoSuchProviderException:JCE无法验证提供程序BC。注意,我已经添加了这段代码:security.addProvider(new BouncyCastleProvider()); 这在使用spring boot embedded tomcat时可以很好地工作,但在导出到运行在wildfly服务器上的war文件时就不行了。 下面是我如何宣布