Как я могу исправить Неразрешенную ссылку: javafxplugin? - PullRequest
0 голосов
/ 10 июня 2019

Как применить плагин для JavaFX с использованием Kotlin DSL? руководство предлагает:

apply plugin: 'org.openjfx.javafxplugin'

Принимая во внимание, что я использую Gradle Kotlin DSL, а не просто ванильный Gradle.

Текущая ошибка:

thufir@dur:~/NetBeansProjects/helloWorldJavaFX$ 
thufir@dur:~/NetBeansProjects/helloWorldJavaFX$ gradle clean

> Configure project :
e: /home/thufir/NetBeansProjects/helloWorldJavaFX/build.gradle.kts:15:5: Unresolved reference: javafxplugin

FAILURE: Build failed with an exception.

* Where:
Build file '/home/thufir/NetBeansProjects/helloWorldJavaFX/build.gradle.kts' line: 15

* What went wrong:
Script compilation error:

  Line 15:     javafxplugin
               ^ Unresolved reference: javafxplugin

1 error

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
thufir@dur:~/NetBeansProjects/helloWorldJavaFX$ 

файл сборки:

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/5.0/userguide/tutorial_java_projects.html
 */

plugins {
    // Apply the java plugin to add support for Java
    java

 // org.openjfx.javafxplugin

    javafxplugin

    // Apply the application plugin to add support for building an application
    application
}




//apply plugin: 'org.openjfx.javafxplugin'


repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {
    // This dependency is found on compile classpath of this component and consumers.
   // implementation("com.google.guava:guava:26.0-jre")

    compile (group = "org.openjfx"             , name = "javafx"                     , version = "12.0.1")
    compile (group = "org.openjfx"             , name = "javafx-base"                , version = "12.0.1")
    compile (group = "org.openjfx"             , name = "javafx-controls"            , version = "12.0.1")
    compile (group = "com.google.api-client"   , name = "google-api-client"          , version = "1.29.2")
    compile (group = "com.google.maps"         , name = "google-maps-services"       , version = "0.9.3")
    compile (group = "org.slf4j"               , name = "slf4j-api"                  , version = "1.7.21")
    compile (group = "org.slf4j"               , name = "slf4j-nop"                  , version = "1.8.0-beta4")
    compile (group = "com.google.cloud"        , name = "google-cloud-translate"     , version = "1.77.0")
    compile (group = "com.google.apis"         , name = "google-api-services-books"  , version = "v1-rev106-1.25.0")


   // implementation 'com.google.maps:google-maps-services:(insert latest version)'
   // implementation 'org.slf4j:slf4j-simple:1.7.25'


    // Use TestNG framework, also requires calling test.useTestNG() below
   // testImplementation("org.testng:testng:6.14.3")
}

application {
    // Define the main class for the application
    mainClassName = "net.bounceme.dur.fx.App"
}

val test by tasks.getting(Test::class) {
    // Use TestNG for unit tests
    useTestNG()
}

Я хочу запустить образец из JavaFX.

1 Ответ

0 голосов
/ 10 июня 2019

Портал плагинов Gradle предоставляет примеры для объявления плагина в Groovy и Kotlin. В README репозитория GitHub также приведены примеры на каждом языке. По сути, применение плагина выглядит так:

plugins {
    application // built-in plugins are declared differently
    id("org.openjfx.javafxplugin") version "0.0.7"
}

Затем, чтобы добавить нужные вам модули JavaFX, вы должны использовать:

javafx {
    // will pull in transitive modules
    modules("javafx.controls", "javafx.fxml") // replace with what you modules need

    // another option is to use:
    // modules = listOf("javafx.controls", "javafx.fxml")

    version = "12.0.1" // or whatever version you're using
}

repositories {
    mavenCentral() // I believe jcenter() should work as well
}

В приведенном выше примере будут задействованы модули javafx.base, javafx.graphics, javafx.controls и javafx.fxml для операционной системы, в которой работает демон Gradle. Он добавляет их в конфигурацию implementation. Не объявляйте вручную какие-либо зависимости JavaFX.

Примечание: Плагин org.openjfx.javafxplugin также применяет плагины com.google.osdetector и org.javamodularity.moduleplugin; по крайней мере, в версии 0.0.7.

Остальная часть вашего файла сборки будет выглядеть примерно так:

java {
    // replace with the Java version you're using
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

application {
    mainClassName = /* your main class */
}

dependencies {
    // add your other dependencies
}

tasks {
    test {
        useTestNG()
    }
}

Хорошим стартовым ресурсом для Kotlin DSL является страница Gradle Kotlin DSL Primer . Если вы новичок в Kotlin, я предлагаю прочитать справку документацию.

...