Make the javapackage task "more gradle" and "less ant".

This commit is contained in:
Chris Rankin 2017-02-09 01:03:12 +00:00
parent 675fa6f2a0
commit 050b2f0151

View File

@ -8,9 +8,9 @@ buildscript {
ext.logback_version = '1.1.10' ext.logback_version = '1.1.10'
ext.java_home = System.properties.'java.home' ext.java_home = System.properties.'java.home'
ext.pkg_source = 'build/packagesrc' ext.pkg_source = "$buildDir/packagesrc"
ext.dist_name = "demobench-${version}" ext.dist_name = "demobench-$version"
ext.dist_source = "${pkg_source}/${dist_name}" ext.dist_source = "$pkg_source/$dist_name"
ext.pkg_version = "$version".indexOf('-') >= 0 ? "$version".substring(0, "$version".indexOf('-')) : "$version" ext.pkg_version = "$version".indexOf('-') >= 0 ? "$version".substring(0, "$version".indexOf('-')) : "$version"
repositories { repositories {
@ -120,36 +120,40 @@ distributions {
} }
/* /*
* Invokes the JavaPackager Ant task, using the ZIP distribution as source. * Bundles the application using JavaPackager,
* using the ZIP distribution as source.
*/ */
task javapackage { task javapackage(dependsOn: 'distZip') {
doLast { doLast {
ant.delete(dir: "${pkg_source}") delete(["$pkg_source", "$buildDir/exedir"])
ant.delete(dir: 'build/exedir')
ant.unzip(src: "build/distributions/${dist_name}.zip", dest: "${pkg_source}") copy {
from(zipTree("$buildDir/distributions/${dist_name}.zip"))
into "$pkg_source"
}
ant.copy(todir: "${pkg_source}/package", filtering: 'true') { copy {
fileset(dir: 'package') from("$projectDir/package")
filterset(begintoken: '@', endtoken: '@') { filter {
filter(token: 'pkg_version', value: "${pkg_version}") line -> line.replaceAll('@pkg_version@', "$pkg_version")
} }
into "$pkg_source/package"
} }
ant.taskdef( ant.taskdef(
resource: 'com/sun/javafx/tools/ant/antlib.xml', resource: 'com/sun/javafx/tools/ant/antlib.xml',
classpath: "${pkg_source}:${java_home}/../lib/ant-javafx.jar" classpath: "$pkg_source:$java_home/../lib/ant-javafx.jar"
) )
ant.deploy(nativeBundles: 'rpm', outdir: 'build/exedir', outfile: 'DemoBench', verbose: 'true') { ant.deploy(nativeBundles: 'rpm', outdir: "$buildDir/exedir", outfile: 'DemoBench', verbose: 'true') {
application(name: 'DemoBench', version: "$pkg_version", mainClass: "$mainClassName") application(name: 'DemoBench', version: "$pkg_version", mainClass: "$mainClassName")
resources { resources {
fileset(dir: "${dist_source}/lib", type: 'jar') { fileset(dir: "$dist_source/lib", type: 'jar') {
include(name: '*.jar') include(name: '*.jar')
} }
fileset(dir: "${dist_source}/lib", type: 'native') { fileset(dir: "$dist_source/lib", type: 'native') {
include(name: "macosx/**/*.dylib") include(name: "macosx/**/*.dylib")
include(name: "win/**/*.dll") include(name: "win/**/*.dll")
include(name: "win/**/*.exe") include(name: "win/**/*.exe")