Как я могу остановить Gradle, удаляя .jars из пути к модулю моего проекта? - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь разработать проект Gradle, включающий JavaFX.

Спецификации: Linux Mint 18.3, Java 11, Eclipse 2019-06, JavaFX: либо 13, либо 11 ...

Несколько полезных ответов на вопросы помогли мне за последние часы: этот говорит мне (с полезным клонируемым примером), как настроить вещи, по крайней мере, используя файл Java для держите основной класс моего проекта (на самом деле я в конечном итоге хочу написать весь мой код в Groovy в идеале), чтобы преодолеть ошибку «отсутствуют компоненты времени выполнения JavaFX, и они необходимы для запуска этого приложения».

Но Eclipse не нравится, когда вы добавляете последний шаг: файл module-info. java. На данный момент я должен признаться, что ничего не знаю о «модулях» Eclipse: только то, что этот неизвестный аспект IDE иногда вызывал у меня неприятные головные боли в прошлом. Вероятно, настало время прочитать об этом сейчас.

Я также должен уточнить, что в этот момент задачи Gradle build и installdist (или assemble) работают нормально в CLI. Я беспокоюсь только об избавлении от этих ужасных меток ошибок Eclipse «белый крестик в красном поле»:

  1. в module-info. java: «javafx.controls не может быть разрешен в модуль "
  2. в Main. java: все классы JavaFX имеют это рядом с ними" Приложение [et c.] не может быть преобразовано в тип ", и все импорты имеют" Тип javafx .scene.Scene [et c.] недоступен "

В этом ответе говорится, что нужно загрузить JavaFX-JDK, а затем добавить различные файлы .jar из него в ваш проект Модульный путь. Я сделал это: ужасные ошибки исчезли!

В следующий раз, когда я сделал Gradle - Refresh, они все вернулись. Я проверил путь модуля: все эти файлы .jar были удалены. Как я могу остановить функционирование Gradle-Eclipse, связанное с моим настроенным путем к модулю?

edit

re комментарий Slaw: да, уже используя

id 'org.openjfx.javafxplugin' version '0.0.8'

... мой блок javafx build.gradle выглядит следующим образом:

javafx {
    version = "13"
    modules = [ 'javafx.controls', 'javafx.fxml' ] 
}

(NB. Теперь я попытался поэкспериментировать, добавив javafx.graphics и javafx. base 'to выше.) Проблема в том, что Gradle - Refresh, тем не менее, вызывает вышеупомянутое явление «исчезающих .jars».

Я попытался добавить это в свой блок плагинов:

id 'org.javamodularity.moduleplugin' version '1.6.0' apply true/false // NB tried both

. .. нет go: Gradle - Refresh приводит к непонятной (для меня) ошибке:

An exception occurred applying plugin request [id: 'org.openjfx.javafxplugin', version: '0.0.8']
> Failed to apply plugin [id 'org.openjfx.javafxplugin']
   > Could not create task ':configJavafxRun'.
      > Could not create task of type 'ExecTask'.
         > Could not generate a decorated class for class org.openjfx.gradle.tasks.ExecTask.
            > org/javamodularity/moduleplugin/tasks/ModuleOptions
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...