java - Gradle 找不到 javafxplugin

这是我第一次尝试使用 Gradle 实现 JavaFX。我的构建从未完成,出现以下错误:

Plugin [id: 'org.openjfx.javafxplugin', version: '0.0.9'] was not found in any of the following resources

我已经访问了我们在此处内部使用的 Maven 存储库,并找到了 JavaFX 插件,尽管它只有一个 pom 文件,没有 jar 或其他可执行代码。这是我的 Gradle 设置。

plugins {
    id 'java-library'
    id 'maven'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.9'
}

apply plugin: 'org.springframework.boot'
apply plugin: 'java'

sourceCompatibility = 11.0
targetCompatibility = 11.0

javafx {
    version = '15.0.1'
    modules = ['javafx.fxml', 'javafx.controls', 'javafx.graphics']
}

repositories {
    mavenLocal()

    maven {
        url "https://local.repository.1/content/groups/public-maven"
    }
    maven {
        url "https://local.repository.2/content/groups/public-maven"
    }
    maven {
        url "https://local.repository.3/service/local/repositories/onewaymirror/content"
    }
    maven {
        url "https://local.repository.4/content/groups/public_maven_release_snapshots_dev/"
    }
}

dependencies {
    implementation "org.openjfx:javafx-plugin:0.0.9"
    testImplementation group: 'junit', name: 'junit', version '4.12'
}

您能提供的任何帮助将不胜感激。提前致谢。

编辑:似乎即使我注释掉 JavaFX 插件和脚本的 JavaFX 部分,构建的其他部分与我知道在存储库中的其他依赖项获得相同的“未找到”条件。这似乎是一个普遍的 Gradle 问题,并非特定于 JavaFX。

回答1

我按照 https://www.jetbrains.com/help/idea/javafx.html 创建了一个新项目,选择 Gradle 作为构建工具和 OpenJDK 18。

生成的项目运行良好。

生成的 build.gradle 文件在 plugins 块中包含以下行:

id 'org.openjfx.javafxplugin' version '0.0.10'`

您的 repositories 设置很奇怪。

生成的构建文件 repositories 块只有:

mavenCentral()

很可能,您的本地存储库设置配置错误并且不包括 javafxplugin 或没有代理对 maven 中央存储库的访问以从那里获取它。

构建。gradle

plugins {
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.10'
    id 'org.beryx.jlink' version '2.24.1'
}

group 'com.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

ext {
    junitVersion = '5.8.2'
}

sourceCompatibility = '18'
targetCompatibility = '18'

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

application {
    mainModule = 'com.example.gradlecheck'
    mainClass = 'com.example.gradlecheck.HelloApplication'
}

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

dependencies {

    testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
}

test {
    useJUnitPlatform()
}

jlink {
    imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    launcher {
        name = 'app'
    }
}

jlinkZip {
    group = 'distribution'
}

回答2

以下添加到设置中。gradle 让我解决了这个问题:

pluginManagement {
    repositories {
        maven {
            url "https://local.repository1/content/groups/public-maven.dev/"
        }
    }
}

感谢所有回答和帮助的人。