Gradle не может разрешить пакет для модуля Java 11, когда в одном из двух каталогов - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь скомпилировать модуль 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.

Что я делаю не так?Я думаю, что мне нужно обновить пути к классам, используемые для компиляции, но я не уверен, какие пути к классам добавить.

...