GWT 2.8.0 + Mvp4g 1.5.2 + gradle dependency

已查看 127 次
跳至第一个未读帖子

Олег Рачаев

未读,
2017年4月25日 07:02:032017/4/25
收件人 Mvp4g
[ERROR] Unexpected internal compiler error
java.lang.NoSuchMethodError: com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest(Ljava/lang/String;)[B
at com.google.gwt.dev.util.CompilerVersion.getHash(CompilerVersion.java:42)
at com.google.gwt.dev.javac.PersistentUnitCacheDir.<clinit>(PersistentUnitCacheDir.java:53)
at com.google.gwt.dev.javac.PersistentUnitCache$BackgroundService.<init>(PersistentUnitCache.java:275)
at com.google.gwt.dev.javac.PersistentUnitCache.<init>(PersistentUnitCache.java:104)
at com.google.gwt.dev.javac.UnitCacheSingleton.get(UnitCacheSingleton.java:98)
at com.google.gwt.dev.Compiler.getOrCreateUnitCache(Compiler.java:90)
at com.google.gwt.dev.Compiler.compile(Compiler.java:191)
at com.google.gwt.dev.Compiler.compile(Compiler.java:155)
at com.google.gwt.dev.Compiler.compile(Compiler.java:144)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:118)
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:1

Mvp4g have dependency gwt-servlet 2.7.0. May be this the source of problem ?

Frank Hossfeld

未读,
2017年4月25日 07:10:252017/4/25
收件人 Mvp4g
I don't think that this problem is related to mvp4g. It looks like you upgraded your project to GWT 2.8.0 and have some old stuff in your classpath.


Hope that helps.

Олег Рачаев

未读,
2017年4月25日 07:37:412017/4/25
收件人 Mvp4g
 I see in Eclipse project folder "Project and External Dependencies" gwt-servlet-2.7.0.

So if i declare exact dependency on gwt-servlet-2.8.0 with 

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

other error occurs:

[ERROR] Unexpected internal compiler error
java.lang.IncompatibleClassChangeError: class com.google.gwt.dev.javac.BytecodeSignatureMaker$CompileDependencyVisitor has interface org.objectweb.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
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:165)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:41)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:36)
at com.google.gwt.dev.javac.Dependencies.resolve(Dependencies.java:100)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:352)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:548)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:479)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:465)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:423)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:222)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:202)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:143)
at com.google.gwt.dev.Compiler.compile(Compiler.java:204)
at com.google.gwt.dev.Compiler.compile(Compiler.java:155)
at com.google.gwt.dev.Compiler.compile(Compiler.java:144)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:118)
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:125)

Олег Рачаев

未读,
2017年4月25日 08:16:012017/4/25
收件人 Mvp4g
I've managed to avoid internal compiler errors by redefining dependency on mvpg in gradle script via file:

compile files('libs/mvp4g-1.5.2.jar','libs/gin-2.1.2.jar')

So I think this is gradle dependency conflict. I'm no so strong in gradle may be someone explain this strange gradle stuffs.

Frank Hossfeld

未读,
2017年4月25日 10:24:532017/4/25
收件人 Mvp4g
Using mvp4g 1.5.2 with GWT 2.8.0 in a Maven works without problems. I would expect that it will work wituout problems using Gradle.

How did you set up mvp4g in your Gradle project as the error occured?

Олег Рачаев

未读,
2017年4月25日 23:33:532017/4/25
收件人 Mvp4g
plugins {
  id "fr.putnami.gwt" version "0.4.0"
}

group = 'nipi.raz4rn'
version = '0.1'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'fr.putnami.gwt'
apply plugin: 'maven-publish'

repositories {
mavenLocal()
    mavenCentral()
}

dependencies {
compile group: "nipi.gwt.login", name: "nipi-gwt-login", version: "+"
compile group: "nipi.ois.model", name: "nipi-ois-model", version: "+"
compile group: "nipi.oracle.db", name: "nipi-oracle-db", version: "+"
compile group: "com.googlecode.gflot", name: "gflot", version: "3.3.0"
compile group: 'com.googlecode.mvp4g', name: 'mvp4g', version: '1.5.2'
}

eclipse {
    classpath {
        downloadJavadoc = true
        downloadSources = true
    }
}

putnami {
module 'nipi.raz4rn.raz4rn'
gwtVersion = "2.8.0"

googlePluginEclipse = false

    jetty {
        debugJava = true
        debugPort = 8001
        debugSuspend = false
    }
    compile {
    sourceLevel = "auto"
    }

}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

вторник, 25 апреля 2017 г., 18:24:53 UTC+4 пользователь Frank Hossfeld написал:

Олег Рачаев

未读,
2017年4月25日 23:36:412017/4/25
收件人 Mvp4g
The above code is build.gradle. I am using Gradle 3.5.

вторник, 25 апреля 2017 г., 15:02:03 UTC+4 пользователь Олег Рачаев написал:

Олег Рачаев

未读,
2017年4月26日 00:12:392017/4/26
收件人 Mvp4g
I think the problem comes from gwt-servlet 2.7.0. And if to tell more precisely because of the version of gwt-servlet that comes.

The compliler error says:

java.lang.NoSuchMethodError: com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest

And as I see: 
com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest 
is in gwt-servlet 2.7.0.

Олег Рачаев

未读,
2017年4月26日 00:44:582017/4/26
收件人 Mvp4g
I continued my research and found a solution.

The solution is to add 2 lines to dependencies of build.gradle

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'
compile group: 'org.ow2.asm', name: 'asm', version: '5.0.3'

Then as I came to this:
I looked at the dependency tree and found:

+--- com.googlecode.mvp4g:mvp4g:1.5.2
|    +--- com.google.gwt:gwt-servlet:2.7.0 -> 2.8.0
|    \--- com.google.gwt.inject:gin:2.1.2
|         +--- com.google.inject:guice:3.0
|         |    +--- javax.inject:javax.inject:1
|         |    +--- aopalliance:aopalliance:1.0
|         |    \--- org.sonatype.sisu.inject:cglib:2.2.1-v20090111
|         |         \--- asm:asm:3.1
|         \--- com.google.inject.extensions:guice-assistedinject:3.0
|              \--- com.google.inject:guice:3.0 (*)
...

+--- com.google.gwt:gwt-codeserver:2.8.0
|    \--- com.google.gwt:gwt-dev:2.8.0
|         +--- com.google.code.gson:gson:2.6.2
|         +--- org.ow2.asm:asm:5.0.3
|         +--- org.ow2.asm:asm-util:5.0.3
|         |    \--- org.ow2.asm:asm-tree:5.0.3
|         |         \--- org.ow2.asm:asm:5.0.3
|         +--- org.ow2.asm:asm-commons:5.0.3
|         |    \--- org.ow2.asm:asm-tree:5.0.3 (*)
...

Frank Hossfeld

未读,
2017年4月26日 02:05:462017/4/26
收件人 Mvp4g
Looking at your gradle.build (the first one you posted), you did not specify the compile group for GWT, so Gradle uses the one from the pom of mvp4g. In this case you have to GWTversion in your build path.

By adding:

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

the GWT 2.7.0 version gets overwritten. 

I would change:

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

to

compile group: 'com.google.gwt', name: 'gwt-user', version: '2.8.0'

to avoid more class path issues. 

Олег Рачаев

未读,
2017年4月26日 02:58:402017/4/26
收件人 Mvp4g
Ok. I've changed script. But without

compile group: 'org.ow2.asm', name: 'asm', version: '5.0.3'

compiler errors are still present.

среда, 26 апреля 2017 г., 10:05:46 UTC+4 пользователь Frank Hossfeld написал:

Frank Hossfeld

未读,
2017年4月26日 03:00:192017/4/26
收件人 Mvp4g
That's possible, because this is a dependency of Guice.

Олег Рачаев

未读,
2017年4月26日 03:08:112017/4/26
收件人 Mvp4g
I found similar problems discussed here:


May be this helps someone.
回复全部
回复作者
转发
0 个新帖子