2019-04-09 12:30:23 +00:00
import static org . gradle . api . JavaVersion . VERSION_1_8
2019-05-14 18:16:18 +00:00
import static org . gradle . api . JavaVersion . VERSION_11
2019-04-09 12:30:23 +00:00
2015-11-03 12:37:19 +00:00
buildscript {
2016-12-06 16:29:15 +00:00
// For sharing constants between builds
2017-03-24 11:22:53 +00:00
Properties constants = new Properties ( )
2017-03-30 15:27:01 +00:00
file ( "$projectDir/constants.properties" ) . withInputStream { constants . load ( it ) }
2016-12-06 16:29:15 +00:00
2016-11-17 11:03:40 +00:00
// Our version: bump this on release.
2019-03-07 12:13:18 +00:00
ext . corda_release_version = constants . getProperty ( "cordaVersion" )
2017-11-24 14:32:32 +00:00
ext . corda_platform_version = constants . getProperty ( "platformVersion" )
2017-03-24 11:22:53 +00:00
ext . gradle_plugins_version = constants . getProperty ( "gradlePluginsVersion" )
2017-01-03 14:15:23 +00:00
// Dependency versions. Can run 'gradle dependencyUpdates' to find new versions of things.
//
// TODO: Sort this alphabetically.
2017-03-30 15:27:01 +00:00
ext . kotlin_version = constants . getProperty ( "kotlinVersion" )
2018-06-12 08:38:14 +00:00
ext . quasar_group = 'co.paralleluniverse'
2019-03-07 12:13:18 +00:00
ext . quasar_version = constants . getProperty ( "quasarVersion" )
2017-05-24 08:58:33 +00:00
2018-09-17 12:55:31 +00:00
// gradle-capsule-plugin:1.0.2 contains capsule:1.0.1 by default.
// We must configure it manually to use the latest capsule version.
ext . capsule_version = '1.0.3'
2017-05-24 08:58:33 +00:00
2018-05-09 12:37:04 +00:00
ext . asm_version = '5.0.4'
2018-07-13 09:10:26 +00:00
ext . artemis_version = '2.6.2'
2019-05-02 10:21:37 +00:00
ext . jackson_version = '2.9.8'
2017-10-26 11:16:57 +00:00
ext . jetty_version = '9.4.7.v20170914'
2017-01-03 14:15:23 +00:00
ext . jersey_version = '2.25'
2017-10-26 11:16:57 +00:00
ext . assertj_version = '3.8.0'
2017-04-24 19:30:21 +00:00
ext . slf4j_version = '1.7.25'
2017-10-26 11:16:57 +00:00
ext . log4j_version = '2.9.1'
2017-04-27 11:22:04 +00:00
ext . bouncycastle_version = constants . getProperty ( "bouncycastleVersion" )
2017-03-24 11:22:53 +00:00
ext . guava_version = constants . getProperty ( "guavaVersion" )
2018-03-14 16:07:31 +00:00
ext . caffeine_version = constants . getProperty ( "caffeineVersion" )
2018-10-02 09:33:17 +00:00
ext . disruptor_version = constants . getProperty ( "disruptorVersion" )
2018-04-13 14:17:20 +00:00
ext . metrics_version = constants . getProperty ( "metricsVersion" )
2018-08-09 17:17:20 +00:00
ext . metrics_new_relic_version = constants . getProperty ( "metricsNewRelicVersion" )
2019-05-15 09:54:44 +00:00
ext . okhttp_version = '3.14.1'
2018-04-27 18:54:08 +00:00
ext . netty_version = '4.1.22.Final'
2017-04-10 12:45:40 +00:00
ext . typesafe_config_version = constants . getProperty ( "typesafeConfigVersion" )
2017-10-26 11:16:57 +00:00
ext . fileupload_version = '1.3.3'
2019-05-15 15:40:12 +00:00
// Legacy JUnit 4 version
2017-01-03 14:15:23 +00:00
ext . junit_version = '4.12'
2019-05-15 15:40:12 +00:00
// Need this version to access classpath scanning error handling fix -
// see https://github.com/junit-team/junit5/commit/389de48c2a18c5a93a7203ef424aa47a8a835a74
// Upgrade to 5.5.x when GA release is available.
ext . junit_vintage_version = '5.5.0-M1'
ext . junit_jupiter_version = '5.5.0-M1'
ext . junit_platform_version = '1.4.2'
2019-05-14 18:16:18 +00:00
ext . mockito_version = '2.24.0'
2018-11-26 17:11:05 +00:00
ext . mockito_kotlin_version = '1.5.0'
2018-07-19 13:21:07 +00:00
ext . hamkrest_version = '1.4.2.2'
2017-01-03 14:15:23 +00:00
ext . jopt_simple_version = '5.0.2'
ext . jansi_version = '1.14'
2019-05-01 12:47:27 +00:00
ext . hibernate_version = '5.3.10.Final'
2018-04-11 12:38:06 +00:00
ext . h2_version = '1.4.197' // Update docs if renamed or removed.
2019-01-24 14:58:30 +00:00
ext . postgresql_version = '42.2.5'
2018-08-27 19:06:01 +00:00
ext . rxjava_version = '1.3.8'
2018-06-13 16:50:13 +00:00
ext . dokka_version = '0.9.17'
2017-05-18 14:58:35 +00:00
ext . eddsa_version = '0.2.0'
2018-12-12 13:02:50 +00:00
ext . dependency_checker_version = '4.0.0'
2017-10-26 11:16:57 +00:00
ext . commons_collections_version = '4.1'
ext . beanutils_version = '1.9.3'
2019-04-09 18:56:01 +00:00
ext . crash_version = '810d2b774b85d4938be01b9b65e29e4fddbc450b'
2017-11-23 22:27:24 +00:00
ext . jsr305_version = constants . getProperty ( "jsr305Version" )
2017-12-11 08:39:09 +00:00
ext . shiro_version = '1.4.0'
2017-12-07 17:22:22 +00:00
ext . artifactory_plugin_version = constants . getProperty ( 'artifactoryPluginVersion' )
2019-02-20 11:28:32 +00:00
ext . hikari_version = '2.5.1'
2018-08-28 17:40:10 +00:00
ext . liquibase_version = '3.5.5'
2018-03-05 13:01:26 +00:00
ext . artifactory_contextUrl = 'https://ci-artifactory.corda.r3cev.com/artifactory'
2018-02-05 11:42:20 +00:00
ext . snake_yaml_version = constants . getProperty ( 'snakeYamlVersion' )
ext . docker_compose_rule_version = '0.33.0'
ext . selenium_version = '3.8.1'
ext . ghostdriver_version = '2.1.0'
2018-02-15 17:10:07 +00:00
ext . eaagentloader_version = '1.0.3'
2018-06-11 19:34:59 +00:00
ext . proguard_version = constants . getProperty ( 'proguardVersion' )
2018-03-07 09:57:32 +00:00
ext . jsch_version = '0.1.54'
2018-05-03 12:25:29 +00:00
ext . commons_cli_version = '1.4'
2019-05-08 12:04:49 +00:00
ext . protonj_version = '0.33.0' // Overide Artemis version
2018-05-09 12:37:04 +00:00
ext . snappy_version = '0.4'
2019-01-21 13:54:26 +00:00
ext . class_graph_version = '4.6.12'
2018-05-24 17:26:55 +00:00
ext . jcabi_manifests_version = '1.1'
2018-11-16 10:10:52 +00:00
ext . picocli_version = '3.8.0'
2018-11-20 14:01:39 +00:00
ext . commons_io_version = '2.6'
2019-04-09 12:30:23 +00:00
ext . gradle_modules_plugin_version = constants . getProperty ( 'gradleModulesPluginVersion' )
2016-01-05 10:44:38 +00:00
2018-06-18 11:40:35 +00:00
// Name of the IntelliJ SDK created for the deterministic Java rt.jar.
// ext.deterministic_idea_sdk = '1.8 (Deterministic)'
2018-06-11 19:34:59 +00:00
2018-06-14 14:18:44 +00:00
// Update 121 is required for ObjectInputFilter.
// Updates [131, 161] also have zip compression bugs on MacOS (High Sierra).
2018-09-19 15:34:03 +00:00
// when the java version in NodeStartup.hasMinimumJavaVersion() changes, so must this check
2019-03-07 12:13:18 +00:00
ext . java8_minUpdateVersion = constants . getProperty ( 'java8MinUpdateVersion' )
2017-04-21 15:26:35 +00:00
2015-11-03 12:37:19 +00:00
repositories {
2016-11-21 17:09:48 +00:00
mavenLocal ( )
2015-11-03 12:37:19 +00:00
mavenCentral ( )
2015-11-16 11:16:37 +00:00
jcenter ( )
2018-01-25 15:26:13 +00:00
maven {
2018-11-27 11:41:05 +00:00
url 'https://kotlin.bintray.com/kotlinx'
2018-01-25 15:26:13 +00:00
}
2018-03-05 13:01:26 +00:00
maven {
url "$artifactory_contextUrl/corda-releases"
}
2019-05-01 12:23:05 +00:00
// TEMP: remove once Corda Gradle plugins 5.0.0 published.
maven {
url "$artifactory_contextUrl/corda-dev"
}
2019-04-09 12:30:23 +00:00
// JDK11 Java modules gradle plugin
maven {
url "https://plugins.gradle.org/m2/"
}
2015-11-03 12:37:19 +00:00
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
2018-03-28 07:40:28 +00:00
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
2016-11-15 17:38:50 +00:00
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
2016-11-25 16:34:32 +00:00
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"
2017-10-09 19:08:08 +00:00
classpath "net.corda.plugins:cordapp:$gradle_plugins_version"
2018-05-17 09:09:12 +00:00
classpath "net.corda.plugins:api-scanner:$gradle_plugins_version"
2018-07-19 15:35:36 +00:00
classpath "net.corda.plugins:jar-filter:$gradle_plugins_version"
2018-06-11 19:34:59 +00:00
classpath "net.sf.proguard:proguard-gradle:$proguard_version"
2017-09-26 16:32:05 +00:00
classpath 'com.github.ben-manes:gradle-versions-plugin:0.15.0'
2017-02-16 11:02:36 +00:00
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
2017-01-17 12:50:16 +00:00
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}"
2017-05-18 14:58:35 +00:00
classpath "net.i2p.crypto:eddsa:$eddsa_version" // Needed for ServiceIdentityGenerator in the build environment.
2017-10-20 16:58:15 +00:00
classpath "org.owasp:dependency-check-gradle:${dependency_checker_version}"
2017-12-07 17:22:22 +00:00
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:$artifactory_plugin_version"
2019-05-20 13:26:42 +00:00
// Capsule gradle plugin forked and maintained locally to support Gradle 5.x
// See https://github.com/corda/gradle-capsule-plugin
classpath "us.kirchmeier:gradle-capsule-plugin:1.0.4_r3"
2019-04-30 10:09:04 +00:00
// classpath "org.javamodularity:moduleplugin:$gradle_modules_plugin_version"
2015-11-03 12:37:19 +00:00
}
}
2016-08-02 17:15:11 +00:00
plugins {
2018-09-13 09:55:52 +00:00
// Add the shadow plugin to the plugins classpath for the entire project.
id 'com.github.johnrengelman.shadow' version '2.0.4' apply false
2019-04-30 10:09:04 +00:00
id "com.gradle.build-scan" version "1.16"
// id 'org.javamodularity.moduleplugin' version '1.5.0' apply true
2019-05-20 13:26:42 +00:00
id "com.gradle.build-scan" version "2.2.1"
2016-08-02 17:15:11 +00:00
}
2017-03-06 14:19:04 +00:00
ext {
2018-07-12 15:20:37 +00:00
corda_revision = "git rev-parse HEAD" . execute ( ) . text . trim ( )
2017-03-06 14:19:04 +00:00
}
2016-08-02 17:15:11 +00:00
apply plugin: 'project-report'
apply plugin: 'com.github.ben-manes.versions'
2016-12-06 10:49:46 +00:00
apply plugin: 'net.corda.plugins.publish-utils'
2017-06-26 17:07:56 +00:00
apply plugin: 'maven-publish'
2017-12-07 17:22:22 +00:00
apply plugin: 'com.jfrog.artifactory'
2016-08-02 17:15:11 +00:00
2016-11-22 11:23:43 +00:00
// 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'
2019-04-30 10:09:04 +00:00
//apply plugin: 'org.javamodularity.moduleplugin'
2016-11-22 11:23:43 +00:00
2019-04-09 12:30:23 +00:00
sourceCompatibility = VERSION_1_8
2019-05-14 18:16:18 +00:00
targetCompatibility = VERSION_11
2019-04-09 12:30:23 +00:00
println "Java version: " + JavaVersion . current ( )
println "Java source compatibility: " + sourceCompatibility
println "Java target compatibility: " + targetCompatibility
2016-11-22 11:23:43 +00:00
2019-04-30 10:09:04 +00:00
// allprojects not allowed ???
// Could not find method kotlinCompile() for arguments [build_1cxylkaspro03mtms9c9xoxft$_run_closure2$_closure16@2dd8b9f2] on root project 'corda-project' of type org.gradle.api.Project.
//subprojects {
// // inlined usage of compileJava with moduleOptions not allowed ???
// // Could not find method moduleOptions() for arguments [build_1cxylkaspro03mtms9c9xoxft$_run_closure2$_closure16$_closure18@afb78c] on task ':client:compileJava' of type org.gradle.api.tasks.compile.JavaCompile.
// apply plugin: 'java'
// apply plugin: 'kotlin'
// apply plugin: "org.javamodularity.moduleplugin"
// kotlinCompile {
// moduleOptions {
// addExports = [
// 'java.base/sun.security.util': 'ALL-UNNAMED',
// 'java.base/sun.security.x509': 'ALL-UNNAMED'
// ]
// }
// }
// compileJava {
// moduleOptions {
// addExports = [
// 'java.base/sun.security.util': 'ALL-UNNAMED',
// 'java.base/sun.security.x509': 'ALL-UNNAMED'
// ]
// }
// }
// test {
// moduleOptions {
// addExports = [
// 'java.base/sun.security.util': 'ALL-UNNAMED',
// 'java.base/sun.security.x509': 'ALL-UNNAMED'
// ]
// }
// }
//}
2016-08-02 17:15:11 +00:00
allprojects {
2017-04-19 14:39:53 +00:00
apply plugin: 'kotlin'
2016-08-02 17:15:11 +00:00
apply plugin: 'jacoco'
2017-10-20 16:58:15 +00:00
apply plugin: 'org.owasp.dependencycheck'
2018-03-28 07:40:28 +00:00
apply plugin: 'kotlin-allopen'
2019-04-30 10:09:04 +00:00
// apply plugin: 'org.javamodularity.moduleplugin'
2018-03-28 07:40:28 +00:00
allOpen {
annotations (
"javax.persistence.Entity" ,
"javax.persistence.Embeddable" ,
"javax.persistence.MappedSuperclass"
)
}
2016-08-02 17:15:11 +00:00
2017-10-20 16:58:15 +00:00
dependencyCheck {
suppressionFile = '.ci/dependency-checker/suppressedLibraries.xml'
cveValidForHours = 1
format = 'ALL'
2019-03-20 13:39:51 +00:00
failOnError = project . property ( 'owasp.failOnError' )
2018-11-07 09:00:19 +00:00
// by default CVSS is '11' which passes everything. Set between 0-10 to catch vulnerable deps
2019-03-20 13:39:51 +00:00
failBuildOnCVSS = project . property ( 'owasp.failBuildOnCVSS' ) . toFloat ( )
2018-12-12 13:02:50 +00:00
analyzers {
assemblyEnabled = false
nuspecEnabled = false
nugetconfEnabled = false
}
2017-10-20 16:58:15 +00:00
}
2019-04-09 12:30:23 +00:00
sourceCompatibility = VERSION_1_8
2019-05-14 18:16:18 +00:00
targetCompatibility = VERSION_11
2016-08-02 17:15:11 +00:00
2019-05-01 09:06:41 +00:00
jacoco {
// JDK11 official support (https://github.com/jacoco/jacoco/releases/tag/v0.8.3)
toolVersion = "0.8.3"
}
2016-08-02 17:15:11 +00:00
tasks . withType ( JavaCompile ) {
2019-05-14 18:16:18 +00:00
options . compilerArgs < < "-Xlint:unchecked" < < "-Xlint:deprecation" < < "-Xlint:-options" < < "-parameters"
//<< "--illegal-access=warn"
2018-08-06 10:59:30 +00:00
options . encoding = 'UTF-8'
2019-04-30 10:09:04 +00:00
options . verbose = true
// moduleOptions {
// addExports = [
// 'java.base/sun.security.util': 'ALL-UNNAMED',
// 'java.base/sun.security.x509': 'ALL-UNNAMED'
// ]
// }
2016-08-02 17:15:11 +00:00
}
2019-03-20 13:39:51 +00:00
tasks . withType ( org . jetbrains . kotlin . gradle . tasks . KotlinCompile ) {
2017-04-19 14:39:53 +00:00
kotlinOptions {
2018-04-20 14:03:07 +00:00
languageVersion = "1.2"
apiVersion = "1.2"
2017-04-19 14:39:53 +00:00
jvmTarget = "1.8"
javaParameters = true // Useful for reflection.
2018-06-18 14:36:33 +00:00
freeCompilerArgs = [ '-Xjvm-default=compatibility' ]
2018-08-23 08:57:05 +00:00
allWarningsAsErrors = project . hasProperty ( 'compilation.allWarningsAsErrors' ) ? project . property ( 'compilation.allWarningsAsErrors' ) . toBoolean ( ) : false
2017-04-19 14:39:53 +00:00
}
}
2017-10-06 14:37:33 +00:00
tasks . withType ( Jar ) { task - >
// Includes War and Ear
2017-04-19 10:05:27 +00:00
manifest {
attributes ( 'Corda-Release-Version' : corda_release_version )
attributes ( 'Corda-Platform-Version' : corda_platform_version )
attributes ( 'Corda-Revision' : corda_revision )
attributes ( 'Corda-Vendor' : 'Corda Open Source' )
2017-10-06 14:37:33 +00:00
attributes ( 'Automatic-Module-Name' : "net.corda.${task.project.name.replaceAll('-', '.')}" )
2017-04-19 10:05:27 +00:00
}
}
2017-05-05 16:30:51 +00:00
tasks . withType ( Test ) {
2019-05-20 10:57:56 +00:00
useJUnitPlatform ( )
2018-08-23 08:57:05 +00:00
failFast = project . hasProperty ( 'tests.failFast' ) ? project . property ( 'tests.failFast' ) . toBoolean ( ) : false
2018-05-19 11:59:28 +00:00
2017-05-05 16:30:51 +00:00
// Prevent the project from creating temporary files outside of the build directory.
2018-06-11 19:34:59 +00:00
systemProperty 'java.io.tmpdir' , buildDir . absolutePath
2018-02-12 12:10:03 +00:00
2019-05-20 13:26:42 +00:00
maxHeapSize = "1g"
2019-03-20 13:39:51 +00:00
if ( project . hasProperty ( 'test.parallel' ) & & project . property ( 'test.parallel' ) . toBoolean ( ) ) {
maxParallelForks = Runtime . runtime . availableProcessors ( ) . intdiv ( 2 ) as int ? : 1
}
2018-02-12 12:10:03 +00:00
if ( System . getProperty ( "test.maxParallelForks" ) ! = null ) {
2019-03-20 13:39:51 +00:00
maxParallelForks = Integer . getInteger ( 'test.maxParallelForks' )
2018-08-21 14:04:43 +00:00
logger . debug ( "System property test.maxParallelForks found - setting max parallel forks to $maxParallelForks for $project" )
2018-02-12 12:10:03 +00:00
}
2018-02-23 20:48:39 +00:00
if ( project . path . startsWith ( ':experimental' ) & & System . getProperty ( "experimental.test.enable" ) = = null ) {
enabled = false
}
2018-09-26 12:38:23 +00:00
// Required to use Gradle build cache (until Gradle 5.0 is released with default value of "append" set to false)
// See https://github.com/gradle/gradle/issues/5269 and https://github.com/gradle/gradle/pull/6419
extensions . configure ( TypeOf . typeOf ( JacocoTaskExtension ) ) { ex - >
ex . append = false
}
2017-05-05 16:30:51 +00:00
}
2016-11-10 13:14:38 +00:00
group 'net.corda'
2017-04-19 10:05:27 +00:00
version "$corda_release_version"
2017-02-17 19:51:54 +00:00
repositories {
2017-03-28 16:17:40 +00:00
mavenLocal ( )
mavenCentral ( )
jcenter ( )
2018-09-03 17:21:58 +00:00
maven { url "$artifactory_contextUrl/corda-dependencies" }
2017-02-17 19:51:54 +00:00
maven { url 'https://jitpack.io' }
2019-02-22 16:48:28 +00:00
maven { url 'https://repo.gradle.org/gradle/libs-releases' }
2019-04-30 10:09:04 +00:00
maven { url "https://plugins.gradle.org/m2/" }
2017-02-17 19:51:54 +00:00
}
2017-03-30 19:59:50 +00:00
2017-09-22 15:45:48 +00:00
configurations {
2018-05-03 11:12:54 +00:00
all {
resolutionStrategy {
// Force dependencies to use the same version of Kotlin as Corda.
force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
force "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
2018-05-15 11:35:00 +00:00
2018-07-17 11:31:44 +00:00
// Force dependencies to use the same version of Guava as Corda.
force "com.google.guava:guava:$guava_version"
2018-05-15 11:35:00 +00:00
// Demand that everything uses our given version of Netty.
eachDependency { details - >
if ( details . requested . group = = 'io.netty' & & details . requested . name . startsWith ( 'netty-' ) ) {
details . useVersion netty_version
}
}
2018-05-03 11:12:54 +00:00
}
}
2017-09-22 15:45:48 +00:00
compile {
// We want to use SLF4J's version of these bindings: jcl-over-slf4j
// Remove any transitive dependency on Apache's version.
exclude group: 'commons-logging' , module: 'commons-logging'
2018-08-28 17:40:10 +00:00
// Remove any transitive dependency on Logback (e.g. Liquibase 3.6 introduces this dependency)
exclude group: 'ch.qos.logback'
2018-05-15 11:35:00 +00:00
// Netty-All is an uber-jar which contains every Netty module.
// Exclude it to force us to use the individual Netty modules instead.
exclude group: 'io.netty' , module: 'netty-all'
2017-09-22 15:45:48 +00:00
}
runtime {
// We never want isolated.jar on classPath, since we want to test jar being dynamically loaded as an attachment
exclude module: 'isolated'
}
2017-03-30 19:59:50 +00:00
}
2016-08-02 17:15:11 +00:00
}
2016-11-15 12:16:30 +00:00
// 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 )
2017-04-21 15:26:35 +00:00
throw new GradleException ( "Corda requires Java 8, please upgrade to at least 1.8.0_$java8_minUpdateVersion" )
2016-11-15 12:16:30 +00:00
2016-11-04 17:53:37 +00:00
// Required for building out the fat JAR.
2016-11-04 17:15:06 +00:00
dependencies {
2017-10-09 19:08:08 +00:00
compile project ( ':node' )
2017-01-03 14:15:23 +00:00
compile "com.google.guava:guava:$guava_version"
2017-02-24 16:15:30 +00:00
2017-07-26 13:48:34 +00:00
// Set to corda compile to ensure it exists now deploy nodes no longer relies on build
2017-10-09 19:08:08 +00:00
compile project ( path: ":node:capsule" , configuration: 'runtimeArtifacts' )
compile project ( path: ":webserver:webcapsule" , configuration: 'runtimeArtifacts' )
2017-03-09 17:11:37 +00:00
// For the buildCordappDependenciesJar task
2017-10-09 19:08:08 +00:00
runtime project ( ':client:jfx' )
runtime project ( ':client:mock' )
runtime project ( ':client:rpc' )
runtime project ( ':core' )
runtime project ( ':confidential-identities' )
2018-12-19 18:02:51 +00:00
runtime project ( ':finance:workflows' )
runtime project ( ':finance:contracts' )
2017-10-09 19:08:08 +00:00
runtime project ( ':webserver' )
2017-03-09 17:11:37 +00:00
testCompile project ( ':test-utils' )
2016-11-04 17:15:06 +00:00
}
2017-09-27 22:49:20 +00:00
jar {
// Prevent the root project from building an unwanted dummy CorDapp.
enabled = false
}
2016-07-21 10:11:37 +00:00
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 ( )
} )
}
2016-07-21 16:40:57 +00:00
}
tasks . withType ( Test ) {
reports . html . destination = file ( "${reporting.baseDir}/${name}" )
}
2018-04-27 08:52:25 +00:00
task testReport ( type: TestReport ) {
destinationDir = file ( "$buildDir/reports/allTests" )
// Include the results from the `test` task in all subprojects
reportOn subprojects * . test
}
2016-12-06 10:49:46 +00:00
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' )
2018-06-11 19:34:59 +00:00
publications = [
'corda-jfx' ,
'corda-mock' ,
'corda-rpc' ,
'corda-core' ,
'corda-core-deterministic' ,
2018-09-07 14:07:06 +00:00
'corda-deterministic-verifier' ,
2018-06-11 19:34:59 +00:00
'corda' ,
2018-12-19 18:02:51 +00:00
'corda-finance-workflows' ,
'corda-finance-contracts' ,
2018-06-11 19:34:59 +00:00
'corda-node' ,
'corda-node-api' ,
'corda-test-common' ,
'corda-test-utils' ,
'corda-jackson' ,
'corda-webserver-impl' ,
'corda-webserver' ,
'corda-node-driver' ,
'corda-confidential-identities' ,
'corda-shell' ,
2018-06-29 09:32:37 +00:00
'corda-tools-shell-cli' ,
2018-06-11 19:34:59 +00:00
'corda-serialization' ,
'corda-serialization-deterministic' ,
2018-06-12 17:08:31 +00:00
'corda-tools-blob-inspector' ,
2018-06-26 09:46:04 +00:00
'corda-tools-explorer' ,
2018-09-11 12:36:38 +00:00
'corda-tools-network-bootstrapper' ,
2018-10-10 09:04:22 +00:00
'corda-tools-cliutils' ,
2018-11-12 13:38:35 +00:00
'corda-common-configuration-parsing' ,
2019-04-11 09:04:16 +00:00
'corda-common-validation' ,
'corda-common-logging'
2018-06-11 19:34:59 +00:00
]
2016-12-06 10:49:46 +00:00
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'
}
2017-01-03 14:15:23 +00:00
}
2017-01-17 12:50:16 +00:00
2017-03-09 17:11:37 +00:00
// 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 ) {
2017-02-24 16:15:30 +00:00
baseName 'corda-deps'
from configurations . runtime
from configurations . compile
2017-03-09 17:11:37 +00:00
from configurations . testCompile
from buildscript . configurations . classpath
2017-02-24 21:57:34 +00:00
from 'node/capsule/NOTICE' // CDDL notice
2017-02-24 16:15:30 +00:00
duplicatesStrategy = DuplicatesStrategy . EXCLUDE
}
2017-06-26 17:07:56 +00:00
artifactory {
publish {
2018-03-05 13:01:26 +00:00
contextUrl = artifactory_contextUrl
2017-06-26 17:07:56 +00:00
repository {
2017-10-11 11:41:11 +00:00
repoKey = 'corda-dev'
2018-09-13 10:14:19 +00:00
username = System . getenv ( 'CORDA_ARTIFACTORY_USERNAME' )
2017-06-26 17:07:56 +00:00
password = System . getenv ( 'CORDA_ARTIFACTORY_PASSWORD' )
}
2017-10-11 11:41:11 +00:00
2017-06-26 17:07:56 +00:00
defaults {
2017-10-11 11:41:11 +00:00
// Root project applies the plugin (for this block) but does not need to be published
2018-07-11 12:28:01 +00:00
if ( project ! = rootProject ) {
2017-10-11 11:41:11 +00:00
publications ( project . extensions . publish . name ( ) )
}
2017-06-26 17:07:56 +00:00
}
}
}
2017-09-29 15:55:26 +00:00
2018-07-11 12:28:01 +00:00
task generateApi ( type: net . corda . plugins . GenerateApi ) {
2017-09-29 15:55:26 +00:00
baseName = "api-corda"
}
2018-01-17 13:08:00 +00:00
// This exists to reduce CI build time when the envvar is set (can save up to 40 minutes)
2018-07-11 12:28:01 +00:00
if ( file ( 'corda-docs-only-build' ) . exists ( ) | | ( System . getenv ( 'CORDA_DOCS_ONLY_BUILD' ) ! = null ) ) {
if ( file ( 'corda-docs-only-build' ) . exists ( ) ) {
2018-01-31 20:46:31 +00:00
logger . info ( "Tests are disabled due to presence of file 'corda-docs-only-build' in the project root" )
} else {
logger . info ( "Tests are disabled due to the presence of envvar CORDA_DOCS_ONLY_BUILD" )
}
2018-01-17 13:08:00 +00:00
allprojects {
test {
exclude '*/**'
}
it . afterEvaluate {
2018-07-11 12:28:01 +00:00
if ( it . tasks . findByName ( "integrationTest" ) ! = null ) {
2018-01-17 13:08:00 +00:00
integrationTest {
exclude '*/**'
}
}
}
it . afterEvaluate {
2018-07-11 12:28:01 +00:00
if ( it . tasks . findByName ( "smokeTest" ) ! = null ) {
2018-01-17 13:08:00 +00:00
smokeTest {
exclude '*/**'
}
}
}
}
}
2018-04-30 11:47:04 +00:00
2019-05-15 15:40:12 +00:00
2018-04-30 11:47:04 +00:00
wrapper {
2019-05-20 13:26:42 +00:00
gradleVersion = "5.4.1"
2018-04-30 11:47:04 +00:00
distributionType = Wrapper . DistributionType . ALL
}
2018-09-26 12:38:23 +00:00
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
2019-01-13 20:34:22 +00:00
}