Я пытаюсь скомпилировать модуль java 11, который содержит смешанный код java и groovy, и компиляция продолжает давать сбой со следующим сообщением:
пакет пустой или не существует: 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.map
в папке java
, и компиляция продолжается после этой точки, нопроисходит сбой при компиляции классов в папке groovy
, для которой требуется MapViewConfig
из папки java
.
Что я делаю не так?Я думаю, что мне нужно обновить пути к классам, используемые для компиляции, но я не уверен, какие пути к классам добавить.