mirror of
https://github.com/corda/corda.git
synced 2024-12-30 09:48:59 +00:00
e879de70f3
* Shrink the Simm Valuation Demo's contract states CorDapp using ProGuard. * Remove CordFormation from CorDapp modules, which unbundles Jolokia from the CorDapps. * Preserve directory structure for CorDapp's own classes. * Remove unwanted transitive dependencies from Simm Valuation CorDapps. * Use allprojects {} to set Strata version property.
77 lines
2.2 KiB
Groovy
77 lines
2.2 KiB
Groovy
apply plugin: 'net.corda.plugins.cordapp'
|
|
|
|
def javaHome = System.getProperty('java.home')
|
|
def shrinkJar = file("$buildDir/libs/${project.name}-${project.version}-tiny.jar")
|
|
|
|
cordapp {
|
|
info {
|
|
vendor = 'R3'
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
shrinkArtifacts
|
|
}
|
|
|
|
dependencies {
|
|
cordaCompile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
|
|
|
// The SIMM demo CorDapp depends upon Cash CorDapp features
|
|
cordapp project(':finance')
|
|
|
|
// Corda integration dependencies
|
|
cordaCompile project(':core')
|
|
|
|
|
|
// Cordapp dependencies
|
|
// Specify your cordapp's dependencies below, including dependent cordapps
|
|
compile "com.opengamma.strata:strata-product:$strata_version"
|
|
compile "com.opengamma.strata:strata-market:$strata_version"
|
|
}
|
|
|
|
jar {
|
|
classifier = 'fat'
|
|
}
|
|
|
|
import proguard.gradle.ProGuardTask
|
|
task shrink(type: ProGuardTask) {
|
|
injars jar
|
|
outjars shrinkJar
|
|
|
|
libraryjars "$javaHome/lib/rt.jar"
|
|
libraryjars "$javaHome/lib/jce.jar"
|
|
configurations.runtime.forEach {
|
|
libraryjars it.path, filter: '!META-INF/versions/**'
|
|
}
|
|
|
|
dontwarn 'afu.org.checkerframework.**'
|
|
dontwarn 'co.paralleluniverse.**'
|
|
dontwarn 'org.checkerframework.**'
|
|
dontwarn 'org.joda.**'
|
|
dontnote
|
|
|
|
// We need to preserve our CorDapp's own directory structure so that Corda
|
|
// can find the contract classes.
|
|
keepdirectories 'net/corda/**'
|
|
keepattributes '*'
|
|
dontobfuscate
|
|
dontoptimize
|
|
verbose
|
|
|
|
// These are our CorDapp classes, so don't change these.
|
|
keep 'class net.corda.vega.** { *; }', includedescriptorclasses:true
|
|
|
|
// Until CorDapps are isolated from each other, we need to ensure that the
|
|
// versions of the classes that this CorDapp needs are still usable by other
|
|
// CorDapps. Unfortunately, this means that we cannot shrink them as much as
|
|
// we'd like to.
|
|
keepclassmembers 'class com.opengamma.strata.** { *; }', includedescriptorclasses:true
|
|
keepclassmembers 'class com.google.** { *; }', includedescriptorclasses:true
|
|
keepclassmembers 'class org.joda.** { *; }', includedescriptorclasses:true
|
|
}
|
|
jar.finalizedBy shrink
|
|
|
|
artifacts {
|
|
shrinkArtifacts file: shrinkJar, name: project.name, type: 'jar', extension: 'jar', classifier: 'tiny', builtBy: shrink
|
|
}
|