gpt4 book ai didi

当位于两个目录之一时,Gradle 无法解析 java 11 模块的包

转载 作者:行者123 更新时间:2023-12-03 05:34:56 24 4
gpt4 key购买 nike

我正在尝试编译一个包含混合 java 和 groovy 代码的 java 11 模块,并且编译一直失败并显示以下消息:

package is empty or does not exist: my.sample.map



我更改了 GroovyCompile使用 java 11 编译标志的任务:
tasks.withType(GroovyCompile) {
doFirst {
options.compilerArgs += [
'--module-path', classpath.asPath,
'-verbose',
'--module-source-path', ["$rootProject.projectDir/*/src/main/{java,groovy}/",
"$rootProject.projectDir/*/src/main/"].join(File.pathSeparator)
]
}
}

对于要编译的模块,我有以下文件夹结构:
my.sample.module
└── src
├── main
│   ├── groovy
│   │   └── my
│   │   └── sample
│   │   └── map
│   │   ├── MapComponent.groovy
│   │   └── MapViewPerspective.groovy
│   ├── java
│   │   └── my
│   │   └── sample
│   │   └── map
│   │   └── config
│   │   └── MapViewConfig.java
│   ├── module-info.java
│   └── resources
│   └── MapView.fxml
└── test
module-info.java的内容如下:
module my.sample.module {
exports my.sample.map.config;
exports my.sample.map;

requires javafx.fxml;
requires javafx.controls;

requires org.codehaus.groovy;

...
}

经过数小时的尝试解决此问题,我能看到的唯一问题是它正在跳过 groovy文件夹,只在 java 中查找内容文件夹。

然后我尝试在包中添加一个空类 my.sample.mapjava文件夹,然后编译继续进行,但在编译 groovy 中的类时失败需要的文件夹 MapViewConfig来自 java文件夹。

我究竟做错了什么?我想我必须更新用于编译的类路径,但我不确定要添加哪些类路径。

最佳答案

根据 Groovy release notes ,Groovy 3 尚不支持 Java 模块系统,但这些变化正在慢慢进入。

Groovy 3 is making changes to allow the codebase to move towards the compliant rules and allow Groovy users to begin the migration process. Groovy 4 is our target version for fully-compliant artifacts but you can start getting your classes ready ahead of time while using Groovy 3.



看起来 Groovy 4 是我们必须等待的黄金版本。至少他们正在努力,所以我们只需要耐心等待。

关于当位于两个目录之一时,Gradle 无法解析 java 11 模块的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com