mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +01:00
18115c98f2
Co-Authored-By: sqrrm <sqrrm@users.noreply.github.com>
421 lines
15 KiB
Groovy
421 lines
15 KiB
Groovy
if(JavaVersion.current() != JavaVersion.VERSION_1_10){
|
|
// feel free to delete this if you know what you are doing
|
|
throw new GradleException("This build must be run with java 10. see docs/build.md")
|
|
}
|
|
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5'
|
|
classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0'
|
|
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
|
|
classpath files('gradle/witness/gradle-witness.jar')
|
|
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.10.RELEASE'
|
|
}
|
|
}
|
|
|
|
configure(rootProject) {
|
|
// remove the 'bisq-*' scripts and 'lib' dir generated by the 'installDist' task
|
|
task clean {
|
|
doLast {
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*'), 'lib'
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(subprojects) {
|
|
apply plugin: 'java'
|
|
apply plugin: 'com.google.osdetector'
|
|
|
|
sourceCompatibility = 1.10
|
|
|
|
ext {
|
|
bcVersion = '1.56'
|
|
codecVersion = '1.9'
|
|
easyVersion = '4.0.1'
|
|
jmockitVersion = '1.42'
|
|
joptVersion = '5.0.3'
|
|
langVersion = '3.4'
|
|
bitcoinjVersion = 'a88d36d'
|
|
logbackVersion = '1.1.10'
|
|
lombokVersion = '1.18.2'
|
|
mockitoVersion = '2.21.0'
|
|
powermockVersion = '2.0.0-beta.5'
|
|
protobufVersion = '3.5.1'
|
|
slf4jVersion = '1.7.22'
|
|
sparkVersion = '2.5.2'
|
|
springVersion = '4.3.6.RELEASE'
|
|
|
|
os = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url 'https://jitpack.io' }
|
|
}
|
|
|
|
dependencies {
|
|
testCompile 'junit:junit:4.12'
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
}
|
|
|
|
|
|
configure([project(':desktop'),
|
|
project(':monitor'),
|
|
project(':relay'),
|
|
project(':seednode'),
|
|
project(':statsnode'),
|
|
project(':pricenode')]) {
|
|
|
|
apply plugin: 'application'
|
|
|
|
build.dependsOn installDist
|
|
installDist.destinationDir = file('build/app')
|
|
distZip.enabled = false
|
|
|
|
// the 'installDist' and 'startScripts' blocks below configure bisq executables to put
|
|
// generated shell scripts in the root project directory, such that users can easily
|
|
// discover and invoke e.g. ./bisq-desktop, ./bisq-seednode, etc.
|
|
// See https://stackoverflow.com/q/46327736 for details.
|
|
|
|
installDist {
|
|
doLast {
|
|
// copy generated shell scripts, e.g. `bisq-desktop` directly to the project
|
|
// root directory for discoverability and ease of use
|
|
|
|
// TODO @cbeams The copy task below fails because the copied files are conflicting with the project
|
|
// folder name. I temporarily delete those files as I think they are duplicated anyway (bisq-* are probably
|
|
// the one to use). Would be good if those files don't get created in the first place.
|
|
// The .bat files are also deleted.
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'desktop*')
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'monitor*')
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'seednode*')
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'pricenode*')
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'statsnode*')
|
|
delete fileTree(dir: "$destinationDir/bin", include: 'relay*')
|
|
|
|
copy {
|
|
from "$destinationDir/bin"
|
|
into rootProject.projectDir
|
|
}
|
|
// copy libs required for generated shell script classpaths to 'lib' dir under
|
|
// the project root directory
|
|
copy {
|
|
from "$destinationDir/lib"
|
|
into "${rootProject.projectDir}/lib"
|
|
}
|
|
|
|
// edit generated shell scripts such that they expect to be executed in the
|
|
// project root dir as opposed to a 'bin' subdirectory
|
|
def windowsScriptFile = file("${rootProject.projectDir}/bisq-${applicationName}.bat")
|
|
windowsScriptFile.text = windowsScriptFile.text.replace(
|
|
'set APP_HOME=%DIRNAME%..', 'set APP_HOME=%DIRNAME%')
|
|
|
|
def unixScriptFile = file("${rootProject.projectDir}/bisq-$applicationName")
|
|
unixScriptFile.text = unixScriptFile.text.replace(
|
|
'cd "`dirname \\"$PRG\\"`/.." >/dev/null', 'cd "`dirname \\"$PRG\\"`" >/dev/null')
|
|
|
|
if (osdetector.os != 'windows')
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*.bat')
|
|
else
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*', exclude: '*.bat')
|
|
}
|
|
}
|
|
|
|
startScripts {
|
|
// rename scripts from, e.g. `desktop` to `bisq-desktop`
|
|
applicationName = "bisq-$applicationName"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':assets')) {
|
|
dependencies {
|
|
compile("com.github.bisq-network.bitcoinj:bitcoinj-core:$bitcoinjVersion") {
|
|
exclude(module: 'jsr305')
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'guava')
|
|
exclude(module: 'protobuf-java')
|
|
}
|
|
compile 'com.google.guava:guava:20.0'
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "commons-codec:commons-codec:$codecVersion"
|
|
compile "org.apache.commons:commons-lang3:$langVersion"
|
|
compile "org.bouncycastle:bcpg-jdk15on:$bcVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':common')) {
|
|
apply plugin: 'com.google.protobuf'
|
|
|
|
sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java"
|
|
|
|
protobuf {
|
|
protoc {
|
|
artifact = "com.google.protobuf:protoc:$protobufVersion"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile "org.openjfx:javafx-base:11:$os"
|
|
compile "org.openjfx:javafx-graphics:11:$os"
|
|
compile "com.google.protobuf:protobuf-java:$protobufVersion"
|
|
compile 'com.google.code.gson:gson:2.7'
|
|
compile('com.googlecode.json-simple:json-simple:1.1.1') {
|
|
exclude(module: 'junit')
|
|
}
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "ch.qos.logback:logback-core:$logbackVersion"
|
|
compile "ch.qos.logback:logback-classic:$logbackVersion"
|
|
compile 'com.google.code.findbugs:jsr305:3.0.2'
|
|
compile 'com.google.guava:guava:20.0'
|
|
compile('com.google.inject:guice:4.1.0') {
|
|
exclude(module: 'guava')
|
|
}
|
|
compile("com.github.bisq-network.bitcoinj:bitcoinj-core:$bitcoinjVersion") {
|
|
exclude(module: 'jsr305')
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'guava')
|
|
exclude(module: 'protobuf-java')
|
|
}
|
|
compile 'org.jetbrains:annotations:13.0'
|
|
runtime "org.bouncycastle:bcprov-jdk15on:$bcVersion"
|
|
compile "org.bouncycastle:bcpg-jdk15on:$bcVersion"
|
|
compile 'commons-io:commons-io:2.4'
|
|
compile "org.apache.commons:commons-lang3:$langVersion"
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':p2p')) {
|
|
dependencies {
|
|
compile project(':common')
|
|
compile('com.github.JesusMcCloud.netlayer:tor.native:0.6.5') {
|
|
exclude(module: 'slf4j-api')
|
|
}
|
|
compile('com.github.JesusMcCloud.netlayer:tor.external:0.6.5') {
|
|
exclude(module: 'slf4j-api')
|
|
}
|
|
compile('org.apache.httpcomponents:httpclient:4.5.3') {
|
|
exclude(module: 'commons-logging')
|
|
}
|
|
compile "net.sf.jopt-simple:jopt-simple:$joptVersion"
|
|
compile 'org.fxmisc.easybind:easybind:1.0.3'
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testCompile 'org.jmockit:jmockit:1.30' // must not use current $jmockitVersion
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':core')) {
|
|
dependencies {
|
|
compile project(':assets')
|
|
compile project(':p2p')
|
|
compile "net.sf.jopt-simple:jopt-simple:$joptVersion"
|
|
compile('network.bisq.btcd-cli4j:btcd-cli4j-core:065d3786') {
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'httpclient')
|
|
exclude(module: 'commons-lang3')
|
|
exclude(module: 'jackson-core')
|
|
exclude(module: 'jackson-annotations')
|
|
exclude(module: 'jackson-databind')
|
|
}
|
|
compile('network.bisq.btcd-cli4j:btcd-cli4j-daemon:065d3786') {
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'httpclient')
|
|
exclude(module: 'commons-lang3')
|
|
exclude(module: 'jackson-core')
|
|
exclude(module: 'jackson-annotations')
|
|
exclude(module: 'jackson-databind')
|
|
}
|
|
compile 'com.fasterxml.jackson.core:jackson-core:2.8.10'
|
|
compile 'com.fasterxml.jackson.core:jackson-annotations:2.8.10'
|
|
compile('com.fasterxml.jackson.core:jackson-databind:2.8.10') {
|
|
exclude(module: 'jackson-annotations')
|
|
}
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile "org.jmockit:jmockit:$jmockitVersion"
|
|
testCompile("org.mockito:mockito-core:$mockitoVersion") {
|
|
exclude(module: 'objenesis')
|
|
}
|
|
testCompile "org.powermock:powermock-module-junit4:$powermockVersion"
|
|
testCompile "org.powermock:powermock-api-mockito2:$powermockVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "com.natpryce:make-it-easy:$easyVersion"
|
|
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
|
|
test {
|
|
systemProperty 'jdk.attach.allowAttachSelf', true
|
|
|
|
def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath
|
|
jvmArgs "-javaagent:$jmockit"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':desktop')) {
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'witness'
|
|
apply from: '../gradle/witness/gradle-witness.gradle'
|
|
|
|
version = '1.1.4-SNAPSHOT'
|
|
|
|
mainClassName = 'bisq.desktop.app.BisqAppMain'
|
|
|
|
tasks.withType(AbstractArchiveTask) {
|
|
preserveFileTimestamps = false
|
|
reproducibleFileOrder = true
|
|
}
|
|
|
|
sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files
|
|
|
|
dependencies {
|
|
compile project(':p2p')
|
|
compile project(':core')
|
|
compile project(':common')
|
|
compile 'org.controlsfx:controlsfx:8.0.6_20'
|
|
compile 'org.reactfx:reactfx:2.0-M3'
|
|
compile 'net.glxn:qrgen:1.3'
|
|
compile 'de.jensd:fontawesomefx:8.0.0'
|
|
compile 'de.jensd:fontawesomefx-commons:9.1.2'
|
|
compile 'de.jensd:fontawesomefx-materialdesignfont:2.0.26-9.1.2'
|
|
compile 'com.googlecode.jcsv:jcsv:1.4.0'
|
|
compile 'com.github.sarxos:webcam-capture:0.3.12'
|
|
compile "org.openjfx:javafx-controls:11:$os"
|
|
compile "org.openjfx:javafx-fxml:11:$os"
|
|
compile "org.openjfx:javafx-swing:11:$os"
|
|
compile 'com.jfoenix:jfoenix:9.0.6'
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile "org.jmockit:jmockit:$jmockitVersion"
|
|
testCompile("org.mockito:mockito-core:$mockitoVersion") {
|
|
exclude(module: 'objenesis')
|
|
}
|
|
testCompile "org.powermock:powermock-module-junit4:$powermockVersion"
|
|
testCompile "org.powermock:powermock-api-mockito2:$powermockVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "com.natpryce:make-it-easy:$easyVersion"
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
|
|
test {
|
|
systemProperty 'jdk.attach.allowAttachSelf', true
|
|
|
|
def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath
|
|
jvmArgs "-javaagent:$jmockit"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':monitor')) {
|
|
mainClassName = 'bisq.monitor.Monitor'
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events "passed", "skipped", "failed"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "ch.qos.logback:logback-core:$logbackVersion"
|
|
compile "ch.qos.logback:logback-classic:$logbackVersion"
|
|
compile 'com.google.guava:guava:20.0'
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile 'org.junit.jupiter:junit-jupiter-api:5.3.2'
|
|
testCompile 'org.junit.jupiter:junit-jupiter-params:5.3.2'
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.2')
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':pricenode')) {
|
|
apply plugin: "org.springframework.boot"
|
|
|
|
version = file("src/main/resources/version.txt").text.trim()
|
|
|
|
jar.manifest.attributes(
|
|
"Implementation-Title": project.name,
|
|
"Implementation-Version": version)
|
|
|
|
dependencies {
|
|
compile project(":core")
|
|
compile("org.knowm.xchange:xchange-bitcoinaverage:4.3.3")
|
|
compile("org.knowm.xchange:xchange-coinmarketcap:4.3.3")
|
|
compile("org.knowm.xchange:xchange-poloniex:4.3.3")
|
|
compile("org.springframework.boot:spring-boot-starter-web:1.5.10.RELEASE")
|
|
compile("org.springframework.boot:spring-boot-starter-actuator")
|
|
}
|
|
|
|
task stage {
|
|
dependsOn assemble
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':relay')) {
|
|
mainClassName = 'bisq.relay.RelayMain'
|
|
|
|
dependencies {
|
|
compile project(':common')
|
|
compile "com.sparkjava:spark-core:$sparkVersion"
|
|
compile 'com.turo:pushy:0.13.2'
|
|
compile 'com.google.firebase:firebase-admin:6.2.0'
|
|
compile "commons-codec:commons-codec:$codecVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':seednode')) {
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
|
|
mainClassName = 'bisq.seednode.SeedNodeMain'
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
runtime "org.bouncycastle:bcprov-jdk15on:$bcVersion"
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':statsnode')) {
|
|
mainClassName = 'bisq.statistics.StatisticsMain'
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
}
|