到Java11的渐变迁移

到Java11的渐变迁移,java,gradle,javafx,java-module,java-11,Java,Gradle,Javafx,Java Module,Java 11,在Gradle构建文件中,fileTree依赖项正在加载一些本地JAR,但编译失败,并出现错误,如“未命名模块中声明了包groovy.text,但模块groovy.text未读取它”。我不确定问题出在哪里,是不是我还需要在compileJava任务中添加一些内容?当前配置用于JavaFx应用程序,如中所述 经过更多的研究,我发现JAR是通过类路径传递给编译器的。但编译失败,出现多个错误,如“未命名模块中声明了包groovy.text,但模块groovy.text未读取它”。这可能是什么?为什么要

在Gradle构建文件中,fileTree依赖项正在加载一些本地JAR,但编译失败,并出现错误,如“未命名模块中声明了包groovy.text,但模块groovy.text未读取它”。我不确定问题出在哪里,是不是我还需要在compileJava任务中添加一些内容?当前配置用于JavaFx应用程序,如中所述


经过更多的研究,我发现JAR是通过类路径传递给编译器的。但编译失败,出现多个错误,如“未命名模块中声明了包groovy.text,但模块groovy.text未读取它”。这可能是什么?为什么要将lib添加到src文件夹(
src/main/lib
)?您可以尝试将它们移动到
lib
,在
src
之外吗?我现在移动了文件夹并修复了build.gradle,但错误保持不变。您有
模块信息.java
文件吗?然后您需要添加类似于
requires groovy.text
@dprutean的东西理想的解决方案是将这些jar添加到modulepath,但是如果您可能有意将它们放在类路径上,那么可以使用VM args
--add reads groovy.text=ALL-UNNAMED
临时解决这个问题。
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0'
    }
}

apply plugin: 'application'
apply plugin: 'com.google.osdetector'

ext.platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os

repositories {
    mavenCentral()
    flatDir {
        dirs 'src/main/lib'
    }
}

dependencies {
    compile fileTree(dir: 'src/main/lib', include: ['*.jar'])
    compile "org.openjfx:javafx-base:11:$platform"
    compile "org.openjfx:javafx-graphics:11:$platform"
    compile "org.openjfx:javafx-controls:11:$platform"
    compile "org.openjfx:javafx-web:11:$platform"
}

compileJava {
    doFirst {
        options.compilerArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls',
                '--add-modules', 'javafx.graphics',
                '--add-modules', 'javafx.web'
        ]
    }
}

run {
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls'
        ]
    }
}

mainClassName = 'HelloFX'