mirror of
https://github.com/corda/corda.git
synced 2024-12-22 14:22:28 +00:00
0ccfae252f
* POMs generated by publishing are now correct. The publish extension now requires an explicit call to configure the publishing instead of waiting until after evaluation. This prevents evaluation order issues with the artifact renaming code that causes the POM to have the original, incorrect, artifact names. * Fixed new test compile issues caused by removal of some dependencies in test utils that caused webserver code to be automatically included in any project also compiling test utils.
73 lines
3.4 KiB
Groovy
73 lines
3.4 KiB
Groovy
/**
|
|
* This build.gradle exists to publish our capsule (executable fat jar) to maven. It cannot be placed in the
|
|
* node project because the bintray plugin cannot publish two modules from one project.
|
|
*/
|
|
apply plugin: 'net.corda.plugins.publish-utils'
|
|
apply plugin: 'us.kirchmeier.capsule'
|
|
apply plugin: 'com.jfrog.artifactory'
|
|
|
|
description 'Corda standalone node'
|
|
|
|
configurations {
|
|
runtimeArtifacts.extendsFrom runtime
|
|
}
|
|
|
|
// Force the Caplet to target Java 6. This ensures that running 'java -jar corda.jar' on any Java 6 VM upwards
|
|
// will get as far as the Capsule version checks, meaning that if your JVM is too old, you will at least get
|
|
// a sensible error message telling you what to do rather than a bytecode version exception that doesn't.
|
|
// If we introduce .java files into this module that need Java 8+ then we will have to push the caplet into
|
|
// its own module so its target can be controlled individually, but for now this suffices.
|
|
sourceCompatibility = 1.6
|
|
targetCompatibility = 1.6
|
|
|
|
task buildCordaJAR(type: FatCapsule, dependsOn: project(':node').compileJava) {
|
|
applicationClass 'net.corda.node.Corda'
|
|
archiveName "corda-${corda_release_version}.jar"
|
|
applicationSource = files(
|
|
project(':node').configurations.runtime,
|
|
project(':node').jar,
|
|
'../build/classes/main/CordaCaplet.class',
|
|
'../build/classes/main/CordaCaplet$1.class',
|
|
"$rootDir/config/dev/log4j2.xml"
|
|
)
|
|
from 'NOTICE' // Copy CDDL notice
|
|
|
|
|
|
capsuleManifest {
|
|
applicationVersion = corda_release_version
|
|
appClassPath = ["jolokia-agent-war-${project.rootProject.ext.jolokia_version}.war"]
|
|
// TODO add this once we upgrade quasar to 0.7.8
|
|
// def quasarExcludeExpression = "x(rx**;io**;kotlin**;jdk**;reflectasm**;groovyjarjarasm**;groovy**;joptsimple**;groovyjarjarantlr**;javassist**;com.fasterxml**;com.typesafe**;com.google**;com.zaxxer**;com.jcabi**;com.codahale**;com.esotericsoftware**;de.javakaffee**;org.objectweb**;org.slf4j**;org.w3c**;org.codehaus**;org.h2**;org.crsh**;org.fusesource**;org.hibernate**;org.dom4j**;org.bouncycastle**;org.apache**;org.objenesis**;org.jboss**;org.xml**;org.jcp**;org.jetbrains**;org.yaml**;co.paralleluniverse**;net.i2p**)"
|
|
// javaAgents = ["quasar-core-${quasar_version}-jdk8.jar=${quasarExcludeExpression}"]
|
|
javaAgents = ["quasar-core-${quasar_version}-jdk8.jar"]
|
|
systemProperties['visualvm.display.name'] = 'Corda'
|
|
minJavaVersion = '1.8.0'
|
|
minUpdateVersion['1.8'] = java8_minUpdateVersion
|
|
caplets = ['CordaCaplet']
|
|
|
|
// JVM configuration:
|
|
// - Constrain to small heap sizes to ease development on low end devices.
|
|
// - Switch to the G1 GC which is going to be the default in Java 9 and gives low pause times/string dedup.
|
|
//
|
|
// If you change these flags, please also update Driver.kt
|
|
jvmArgs = ['-Xmx200m', '-XX:+UseG1GC']
|
|
}
|
|
|
|
// Make the resulting JAR file directly executable on UNIX by prepending a shell script to it.
|
|
// This lets you run the file like so: ./corda.jar
|
|
// Other than being slightly less typing, this has one big advantage: Ctrl-C works properly in the terminal.
|
|
reallyExecutable { trampolining() }
|
|
}
|
|
|
|
artifacts {
|
|
runtimeArtifacts buildCordaJAR
|
|
publish buildCordaJAR {
|
|
classifier ""
|
|
}
|
|
}
|
|
|
|
publish {
|
|
disableDefaultJar = true
|
|
name 'corda'
|
|
}
|