Merge pull request #6789 from alvasw/gradle_centralize_javafx_setup

Gradle: Centralize JavaFX Setup
This commit is contained in:
Alejandro García 2023-08-04 13:35:50 +00:00 committed by GitHub
commit 36169be1f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 230 additions and 253 deletions

View file

@ -5,3 +5,7 @@ plugins {
repositories {
gradlePluginPortal()
}
dependencies {
implementation libs.openjfx.javafx.plugin
}

View file

@ -0,0 +1,7 @@
plugins {
id 'org.openjfx.javafxplugin'
}
javafx {
version = "16"
}

View file

@ -6,7 +6,6 @@ buildscript {
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
classpath 'org.openjfx:javafx-plugin:0.0.10'
}
}
@ -20,13 +19,6 @@ configure(rootProject) {
}
}
configure(subprojects) {
ext { // in alphabetical order
javafxVersion = '16'
}
}
configure([project(':cli'),
project(':daemon'),
project(':desktop'),
@ -98,251 +90,6 @@ configure([project(':cli'),
}
}
configure(project(':common')) {
apply plugin: 'org.openjfx.javafxplugin'
javafx {
version = "$javafxVersion"
modules = ['javafx.graphics']
}
ext.getHash = {
def p1 = 'git rev-parse HEAD'.execute()
p1.waitFor()
return p1.text
}
jar.manifest.attributes(
"Implementation-Version": getHash())
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
annotationProcessor libs.lombok
compileOnly libs.javax.annotation
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation libs.google.findbugs
implementation libs.google.gson
implementation libs.google.guava
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation libs.commons.io
implementation libs.jopt
implementation libs.apache.commons.lang3
implementation libs.bouncycastle.bcpg.jdk15on
implementation libs.kotlin.stdlib.jdk8
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
runtimeOnly(libs.grpc.netty.shaded) {
exclude(module: 'animal-sniffer-annotations')
exclude(module: 'guava')
}
}
}
configure(project(':p2p')) {
apply plugin: 'org.openjfx.javafxplugin'
javafx {
version = "$javafxVersion"
modules = ['javafx.base']
}
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
implementation project(':common')
annotationProcessor libs.lombok
compileOnly libs.lombok
implementation libs.google.guava
implementation libs.fxmisc.easybind
implementation libs.slf4j.api
implementation(libs.netlayer.tor.external) {
exclude(module: 'slf4j-api')
}
implementation(libs.netlayer.tor.native) {
exclude(module: 'slf4j-api')
}
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation(libs.apache.httpclient) {
exclude(module: 'commons-codec')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.logback.classic
testImplementation libs.logback.core
testImplementation libs.apache.commons.lang3
}
}
configure(project(':core')) {
apply plugin: 'org.openjfx.javafxplugin'
javafx {
version = "$javafxVersion"
modules = ['javafx.base']
}
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
implementation project(':assets')
implementation project(':common')
implementation project(':p2p')
annotationProcessor libs.lombok
compileOnly libs.javax.annotation
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation libs.jackson.annotations
implementation libs.jackson.core
implementation libs.google.findbugs
implementation libs.google.gson
implementation libs.google.guava
implementation libs.commons.codec
implementation libs.commons.io
implementation libs.jopt
implementation libs.apache.commons.lang3
implementation libs.apache.httpcore
implementation libs.fxmisc.easybind
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
implementation(libs.jackson.databind) {
exclude(module: 'jackson-annotations')
}
implementation(libs.netlayer.tor.external) {
exclude(module: 'slf4j-api')
}
implementation(libs.netlayer.tor.native) {
exclude(module: 'slf4j-api')
}
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.jsonrpc4j) {
exclude(module: 'base64')
exclude(module: 'httpcore-nio')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation(libs.apache.httpclient) {
exclude(module: 'commons-codec')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
}
test {
systemProperty 'jdk.attach.allowAttachSelf', true
}
}
configure(project(':desktop')) {
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'org.openjfx.javafxplugin'
apply from: 'package/package.gradle'
shadowDistTar.enabled = false
shadowDistZip.enabled = false
javafx {
version = "$javafxVersion"
modules = ['javafx.controls', 'javafx.fxml']
}
version = file("src/main/resources/version.txt").text.trim()
jar.manifest.attributes(
"Implementation-Title": project.name,
"Implementation-Version": version)
mainClassName = 'bisq.desktop.app.BisqAppMain'
jar {
preserveFileTimestamps = false
reproducibleFileOrder = true
}
sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':assets')
implementation project(':common')
implementation project(':proto')
implementation project(':p2p')
implementation project(':core')
annotationProcessor libs.lombok
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation libs.google.gson
implementation libs.google.guava
implementation libs.jcsv
implementation libs.jfoenix
implementation libs.commons.io
implementation libs.fontawesomefx
implementation libs.fontawesomefx.commons
implementation libs.fontawesomefx.materialdesign.font
implementation libs.qrgen
implementation libs.apache.commons.lang3
implementation libs.bouncycastle.bcpg.jdk15on
implementation libs.fxmisc.easybind
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
}
test {
systemProperty 'jdk.attach.allowAttachSelf', true
}
}
configure(project(':seednode')) {
apply plugin: 'com.github.johnrengelman.shadow'

View file

@ -1,3 +1,43 @@
plugins {
id 'bisq.java-conventions'
id 'bisq.javafx'
}
javafx {
modules = ['javafx.graphics']
}
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
annotationProcessor libs.lombok
compileOnly libs.javax.annotation
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation libs.google.findbugs
implementation libs.google.gson
implementation libs.google.guava
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation libs.commons.io
implementation libs.jopt
implementation libs.apache.commons.lang3
implementation libs.bouncycastle.bcpg.jdk15on
implementation libs.kotlin.stdlib.jdk8
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
runtimeOnly(libs.grpc.netty.shaded) {
exclude(module: 'animal-sniffer-annotations')
exclude(module: 'guava')
}
}

View file

@ -1,3 +1,68 @@
plugins {
id 'bisq.java-conventions'
id 'bisq.javafx'
}
javafx {
modules = ['javafx.base']
}
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
implementation project(':assets')
implementation project(':common')
implementation project(':p2p')
annotationProcessor libs.lombok
compileOnly libs.javax.annotation
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation libs.jackson.annotations
implementation libs.jackson.core
implementation libs.google.findbugs
implementation libs.google.gson
implementation libs.google.guava
implementation libs.commons.codec
implementation libs.commons.io
implementation libs.jopt
implementation libs.apache.commons.lang3
implementation libs.apache.httpcore
implementation libs.fxmisc.easybind
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
implementation(libs.jackson.databind) {
exclude(module: 'jackson-annotations')
}
implementation(libs.netlayer.tor.external) {
exclude(module: 'slf4j-api')
}
implementation(libs.netlayer.tor.native) {
exclude(module: 'slf4j-api')
}
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.jsonrpc4j) {
exclude(module: 'base64')
exclude(module: 'httpcore-nio')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation(libs.apache.httpclient) {
exclude(module: 'commons-codec')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
}
test {
systemProperty 'jdk.attach.allowAttachSelf', true
}

View file

@ -1,3 +1,74 @@
plugins {
id 'bisq.java-conventions'
id 'bisq.javafx'
}
apply plugin: 'com.github.johnrengelman.shadow'
apply from: 'package/package.gradle'
shadowDistTar.enabled = false
shadowDistZip.enabled = false
javafx {
modules = ['javafx.controls', 'javafx.fxml']
}
version = file("src/main/resources/version.txt").text.trim()
jar.manifest.attributes(
"Implementation-Title": project.name,
"Implementation-Version": version)
mainClassName = 'bisq.desktop.app.BisqAppMain'
jar {
preserveFileTimestamps = false
reproducibleFileOrder = true
}
sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':assets')
implementation project(':common')
implementation project(':proto')
implementation project(':p2p')
implementation project(':core')
annotationProcessor libs.lombok
compileOnly libs.lombok
implementation libs.logback.classic
implementation libs.logback.core
implementation libs.google.gson
implementation libs.google.guava
implementation libs.jcsv
implementation libs.jfoenix
implementation libs.commons.io
implementation libs.fontawesomefx
implementation libs.fontawesomefx.commons
implementation libs.fontawesomefx.materialdesign.font
implementation libs.qrgen
implementation libs.apache.commons.lang3
implementation libs.bouncycastle.bcpg.jdk15on
implementation libs.fxmisc.easybind
implementation libs.jetbrains.annotations
implementation libs.slf4j.api
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy
}
test {
systemProperty 'jdk.attach.allowAttachSelf', true
}

View file

@ -41,6 +41,7 @@ lombok = { strictly = '1.18.22' }
mockito = { strictly = '4.0.0' }
natpryce-make-it-easy = { strictly = '4.0.1' }
netlayer = { strictly = '0.7.6' }
openjfx-javafx-plugin = { strictly = '0.0.10' }
protobuf = { strictly = '3.19.1' }
qrgen = { strictly = '1.3' }
slf4j = { strictly = '1.7.30' }
@ -103,6 +104,7 @@ natpryce-make-it-easy = { module = "com.natpryce:make-it-easy", version.ref = "n
netlayer-tor-external = { module = "com.github.bisq-network.netlayer:tor.external", version.ref = "netlayer" }
netlayer-tor-native = { module = "com.github.bisq-network.netlayer:tor.native", version.ref = "netlayer" }
openjfx-javafx-plugin = { module = "org.openjfx:javafx-plugin", version.ref = "openjfx-javafx-plugin" }
protobuf-java = { module = "com.google.protobuf:protobuf-java", version.ref = "protobuf" }
qrgen = { module = "net.glxn:qrgen", version.ref = "qrgen" }
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }

View file

@ -1,3 +1,44 @@
plugins {
id 'bisq.java-conventions'
id 'bisq.javafx'
}
javafx {
modules = ['javafx.base']
}
dependencies {
implementation enforcedPlatform(project(':platform'))
implementation project(':proto')
implementation project(':common')
annotationProcessor libs.lombok
compileOnly libs.lombok
implementation libs.google.guava
implementation libs.fxmisc.easybind
implementation libs.slf4j.api
implementation(libs.netlayer.tor.external) {
exclude(module: 'slf4j-api')
}
implementation(libs.netlayer.tor.native) {
exclude(module: 'slf4j-api')
}
implementation(libs.bitcoinj) {
exclude(module: 'bcprov-jdk15on')
exclude(module: 'guava')
exclude(module: 'jsr305')
exclude(module: 'okhttp')
exclude(module: 'okio')
exclude(module: 'slf4j-api')
}
implementation(libs.google.guice) {
exclude(module: 'guava')
}
implementation(libs.apache.httpclient) {
exclude(module: 'commons-codec')
}
testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok
testImplementation libs.logback.classic
testImplementation libs.logback.core
testImplementation libs.apache.commons.lang3
}