Две версии модуля javafx.base в проекте gradle / JavaFX - PullRequest
1 голос
/ 01 марта 2020

Моя команда работает над проектом java. (git репо @ https://github.com/RaiderRobotix/Scouting-Client-FX). Мы пытаемся упаковать его, используя jlink. При запуске задачи jlink отображается следующее (gradlew jlink). Я использую Gradle 6.1.1, с JDK 11 на MacOS. Если вы хотите посмотреть нашу информацию о модуле. java, пожалуйста, проверьте репо. Я не хотел делать этот вопрос слишком длинным.

Кстати, у меня на компьютере несколько JDK (8,11). Сборка проекта работает, но запуск с gradlew run - нет (я думаю, что это не связано с ломбоком).

Полная ошибка: Error: Two versions of module javafx.base found in ./build/jlinkbase/jlinkjars (Infinite Recharge Client-v4.0.0-alpha.jar and javafx-base-11-mac.jar)

build.gradle

plugins {
    id 'java'
    id 'idea'
    id "org.openjfx.javafxplugin" version "0.0.8"
    id 'org.beryx.jlink' version '2.17.2'
    id "com.github.johnrengelman.shadow" version "5.2.0"
    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
    id 'com.github.gmazzo.buildconfig' version '1.6.2'
}

group = "com.github.RaiderRobotix"
version = "v4.0.0-alpha"

repositories {
    maven { url 'https://jitpack.io' }
    jcenter()
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

jar {
    manifest {
        attributes (
            'Implementation-Title': 'Raider Robotix Scouting Client',
            'Implementation-Version': project.version,
            'Main-Class': 'org.usfirst.frc.team25.scouting.client.ui.Main'
        )
    }
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
}


dependencies {
    implementation 'com.github.RaiderRobotix:Scouting-Models:29617b7dcc'
    implementation 'com.github.RaiderRobotix:blue-alliance-api-java-library:3.0.0'

    implementation 'org.projectlombok:lombok:1.18.10'
    annotationProcessor 'org.projectlombok:lombok:1.18.10'

    implementation 'com.google.code.gson:gson:2.+'
    implementation 'commons-io:commons-io:2.+'
    implementation 'org.apache.commons:commons-math3:3.+'

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.61"

}

buildConfig {
    packageName "com.raiderrobotix"
    buildConfigField 'String', 'TBA_API_KEY', project['TBA_API_KEY']
    // The escaped quotes here are NEEDED. The plugin copies the TEXT LITERAL given to it. The quotes are part of this.
    buildConfigField 'String', 'VERSION', "\"$version\""
}

javafx {
    version = "11"
    modules = [
        'javafx.base',
        'javafx.graphics',
        'javafx.controls',
        'javafx.fxml',
    ]
}

jlink {
    launcher {
        name = 'Scouting Client'
    }
}

application {
    mainClassName = 'org.raiderrobotix.scouting.client/org.raiderrobotix.scouting.client.ui.Main'
}

wrapper {
    gradleVersion = '6.1.1'
}

compileKotlin {
    kotlinOptions {
        jvmTarget = "11"
    }
}

compileTestKotlin {
    kotlinOptions {
        jvmTarget = "11"
    }
}
...