mirror of
https://github.com/corda/corda.git
synced 2024-12-19 13:08:04 +00:00
b80aaa0e9d
Removed redundant parts of the docsite generator. Gradle now calls the docsite requirements installation script when building docs via buildDocs Added docs build script and moved all docs building related code into it Corrected directories for build.
236 lines
7.8 KiB
Groovy
236 lines
7.8 KiB
Groovy
buildscript {
|
|
// For sharing constants between builds
|
|
Properties constants = new Properties()
|
|
file("constants.properties").withInputStream { constants.load(it) }
|
|
|
|
// Our version: bump this on release.
|
|
ext.corda_version = "0.10-SNAPSHOT"
|
|
ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion")
|
|
|
|
// Dependency versions. Can run 'gradle dependencyUpdates' to find new versions of things.
|
|
//
|
|
// TODO: Sort this alphabetically.
|
|
ext.kotlin_version = '1.1.1'
|
|
ext.quasar_version = '0.7.6' // TODO: Upgrade to 0.7.7+ when Quasar bug 238 is resolved.
|
|
ext.asm_version = '0.5.3'
|
|
ext.artemis_version = '1.5.3'
|
|
ext.jackson_version = '2.8.5'
|
|
ext.jetty_version = '9.3.9.v20160517'
|
|
ext.jersey_version = '2.25'
|
|
ext.jolokia_version = '2.0.0-M3'
|
|
ext.assertj_version = '3.6.1'
|
|
ext.slf4j_version = '1.7.24'
|
|
ext.log4j_version = '2.7'
|
|
ext.bouncycastle_version = '1.56'
|
|
ext.guava_version = constants.getProperty("guavaVersion")
|
|
ext.quickcheck_version = '0.7'
|
|
ext.okhttp_version = '3.5.0'
|
|
ext.netty_version = '4.1.5.Final'
|
|
ext.typesafe_config_version = '1.3.1'
|
|
ext.fileupload_version = '1.3.2'
|
|
ext.junit_version = '4.12'
|
|
ext.mockito_version = '1.10.19'
|
|
ext.jopt_simple_version = '5.0.2'
|
|
ext.jansi_version = '1.14'
|
|
ext.hibernate_version = '5.2.6.Final'
|
|
ext.h2_version = '1.4.194'
|
|
ext.rxjava_version = '1.2.4'
|
|
ext.requery_version = '1.2.1'
|
|
ext.dokka_version = '0.9.13'
|
|
ext.crash_version = '1.3.2'
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
|
|
classpath "net.corda.plugins:publish-utils:$gradle_plugins_version"
|
|
classpath "net.corda.plugins:quasar-utils:$gradle_plugins_version"
|
|
classpath "net.corda.plugins:cordformation:$gradle_plugins_version"
|
|
classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
|
|
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
|
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}"
|
|
classpath "org.ajoberstar:grgit:1.1.0"
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
// TODO The capsule plugin requires the newer DSL plugin block.It would be nice if we could unify all the plugins into one style,
|
|
// but the DSL has some restrictions e.g can't be used on the allprojects section. So we should revisit this if there are improvements in Gradle.
|
|
id "us.kirchmeier.capsule" version "1.0.2"
|
|
}
|
|
|
|
ext {
|
|
corda_revision = org.ajoberstar.grgit.Grgit.open(file('.')).head().id
|
|
}
|
|
|
|
apply plugin: 'kotlin'
|
|
apply plugin: 'project-report'
|
|
apply plugin: 'com.github.ben-manes.versions'
|
|
apply plugin: 'net.corda.plugins.publish-utils'
|
|
apply plugin: 'net.corda.plugins.quasar-utils'
|
|
apply plugin: 'net.corda.plugins.cordformation'
|
|
|
|
// We need the following three lines even though they're inside an allprojects {} block below because otherwise
|
|
// IntelliJ gets confused when importing the project and ends up erasing and recreating the .idea directory, along
|
|
// with the run configurations. It also doesn't realise that the project is a Java 8 project and misconfigures
|
|
// the resulting import. This fixes it.
|
|
apply plugin: 'java'
|
|
sourceCompatibility = 1.8
|
|
targetCompatibility = 1.8
|
|
|
|
|
|
allprojects {
|
|
apply plugin: 'java'
|
|
apply plugin: 'jacoco'
|
|
|
|
sourceCompatibility = 1.8
|
|
targetCompatibility = 1.8
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Xlint:-options"
|
|
}
|
|
|
|
group 'net.corda'
|
|
version "$corda_version"
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
jcenter()
|
|
// TODO: remove this once we eliminate Exposed
|
|
maven {
|
|
url 'https://dl.bintray.com/kotlin/exposed'
|
|
}
|
|
maven { url 'https://jitpack.io' }
|
|
}
|
|
}
|
|
|
|
// Check that we are running on a Java 8 JDK. The source/targetCompatibility values above aren't sufficient to
|
|
// guarantee this because those are properties checked by the Java plugin, but we're using Kotlin.
|
|
//
|
|
// We recommend a specific minor version (unfortunately, not checkable directly) because JavaFX adds APIs in
|
|
// minor releases, so we can't work with just any Java 8, it has to be a recent one.
|
|
if (!JavaVersion.current().java8Compatible)
|
|
throw new GradleException("Corda requires Java 8, please upgrade to at least 1.8.0_112")
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
jcenter()
|
|
maven {
|
|
url 'https://dl.bintray.com/kotlin/exposed'
|
|
}
|
|
}
|
|
|
|
// Required for building out the fat JAR.
|
|
dependencies {
|
|
compile project(':node')
|
|
compile "com.google.guava:guava:$guava_version"
|
|
|
|
runtime project(path: ":node:capsule", configuration: 'runtimeArtifacts')
|
|
runtime project(path: ":node:webserver:webcapsule", configuration: 'runtimeArtifacts')
|
|
|
|
// For the buildCordappDependenciesJar task
|
|
runtime project(':client:jfx')
|
|
runtime project(':client:mock')
|
|
runtime project(':client:rpc')
|
|
runtime project(':core')
|
|
runtime project(':finance')
|
|
runtime project(':node:webserver')
|
|
testCompile project(':test-utils')
|
|
}
|
|
|
|
task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
|
|
dependsOn = subprojects.test
|
|
additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
|
|
sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
|
|
classDirectories = files(subprojects.sourceSets.main.output)
|
|
executionData = files(subprojects.jacocoTestReport.executionData)
|
|
reports {
|
|
html.enabled = true
|
|
xml.enabled = true
|
|
csv.enabled = false
|
|
}
|
|
onlyIf = {
|
|
true
|
|
}
|
|
doFirst {
|
|
executionData = files(executionData.findAll {
|
|
it.exists()
|
|
})
|
|
}
|
|
}
|
|
|
|
tasks.withType(Test) {
|
|
reports.html.destination = file("${reporting.baseDir}/${name}")
|
|
}
|
|
|
|
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['build']) {
|
|
directory "./build/nodes"
|
|
networkMap "Controller"
|
|
node {
|
|
name "Controller"
|
|
nearestCity "London"
|
|
advertisedServices = ["corda.notary.validating"]
|
|
p2pPort 10002
|
|
cordapps = []
|
|
}
|
|
node {
|
|
name "Bank A"
|
|
nearestCity "London"
|
|
advertisedServices = []
|
|
p2pPort 10012
|
|
rpcPort 10013
|
|
webPort 10014
|
|
cordapps = []
|
|
}
|
|
node {
|
|
name "Bank B"
|
|
nearestCity "New York"
|
|
advertisedServices = []
|
|
p2pPort 10007
|
|
rpcPort 10008
|
|
webPort 10009
|
|
cordapps = []
|
|
}
|
|
}
|
|
|
|
bintrayConfig {
|
|
user = System.getenv('CORDA_BINTRAY_USER')
|
|
key = System.getenv('CORDA_BINTRAY_KEY')
|
|
repo = 'corda'
|
|
org = 'r3'
|
|
licenses = ['Apache-2.0']
|
|
vcsUrl = 'https://github.com/corda/corda'
|
|
projectUrl = 'https://github.com/corda/corda'
|
|
gpgSign = true
|
|
gpgPassphrase = System.getenv('CORDA_BINTRAY_GPG_PASSPHRASE')
|
|
publications = ['jfx', 'mock', 'rpc', 'core', 'corda', 'corda-webserver', 'finance', 'node', 'node-api', 'node-schemas', 'test-utils', 'jackson', 'verifier', 'webserver']
|
|
license {
|
|
name = 'Apache-2.0'
|
|
url = 'https://www.apache.org/licenses/LICENSE-2.0'
|
|
distribution = 'repo'
|
|
}
|
|
developer {
|
|
id = 'R3'
|
|
name = 'R3'
|
|
email = 'dev@corda.net'
|
|
}
|
|
}
|
|
|
|
// Build a ZIP of all JARs required to compile the Cordapp template
|
|
// Note: corda.jar is used at runtime so no runtime ZIP is necessary.
|
|
// Resulting ZIP can be found in "build/distributions"
|
|
task buildCordappDependenciesZip(type: Zip) {
|
|
baseName 'corda-deps'
|
|
from configurations.runtime
|
|
from configurations.compile
|
|
from configurations.testCompile
|
|
from buildscript.configurations.classpath
|
|
from 'node/capsule/NOTICE' // CDDL notice
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|