GwtMaterialDesign / gwt-material

A Google Material Design wrapper for GWT
https://gwtmaterialdesign.github.io/gmd-core-demo/
Apache License 2.0
410 stars 124 forks source link

support for jdk 11 or 17 #1030

Open Magallo opened 1 year ago

Magallo commented 1 year ago

Hi, I tried to build a working gwt material project of my own using jdk 17 instead of jdk 8 but unfortunately it doesn't work. I'm using Eclipse ID and when I execute Debug As -> Mavel install I got build errors.

Are you planning to extend support to newest jdk versions instead of being stuck with jdk 8?

Thanks.

michael-newsrx commented 1 year ago

It seems to work fine with Gradle and JDK 17. So it really sounds like a build config issue.

Magallo commented 1 year ago

Unfortunately I don’t know Gradle and I don’t know how I could configure a gwt-material project using it instead of Maven. Do you have some suggestions to solve this problem?

michael-newsrx commented 1 year ago

Here are the Gradle fragments we use for GWT. I've no idea how to do this with Maven. Maybe you'll see something we configure via Gradle that you can configure via Maven that might fix your issue.

settings.gradle

pluginManagement {
  plugins {
    id "org.docstr.gwt" version "1.1.21"
    id "org.gretty" version "3.0.8"
  }
}

build.gradle

plugins {
    id "idea"
    id "java"
    id "war"
    id "org.gretty"
    id "org.docstr.gwt"
}

java.sourceCompatibility = JavaVersion.VERSION_11
java.targetCompatibility = JavaVersion.VERSION_17
compileJava.options.encoding = 'UTF-8'
compileJava.options.release = 17
compileTestJava.options.encoding = 'UTF-8'
compileTestJava.options.release = 17
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
java.withSourcesJar()
jar {
    from sourceSets.main.allSource
    duplicatesStrategy = DuplicatesStrategy.INCLUDE
}

repositories {
    mavenCentral()
    google()
    maven { url 'https://jitpack.io' }
}

tasks.withType(GwtSuperDev) {
    args "-style", "PRETTY", "-strict"
    jvmArgs "-Dgwt.watchFileChanges=false"
}

war {
    archiveName 'servlet.war'
    rootSpec.exclude('WEB-INF/classes/**/*.class')
}

gretty {
    httpPort = 8080
    servletContainer = 'tomcat9'
    contextPath = "servlet"
    extraResourceBase 'build/gwt/out'
}

gwt {
    src += files(compileJava.options.annotationProcessorGeneratedSourcesDirectory)
    logLevel = "INFO"
    maxHeapSize = "4096M"
    modules 'com.example.EntryPointClassName'
    compiler {
        disableClassMetadata = false
        strict = true
        style = "OBF"
    }

    devModules += 'com.example.EntryPointClassName'

    superDev {
        noPrecompile = true
        failOnError = true
        bindAddress = "0.0.0.0"
    }
}

More information about the GWT Gradle plugin can be found at: https://gwt-gradle-plugin.documentnode.io/

beatjost commented 1 month ago

Running it on Java 17, but have problems with Java 21... Anyone managed to run it with Java 21? Maybe 2.8.3 contains to old lib references... image