| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| description = 'Fineract WAR' |
| |
| apply plugin: 'war' |
| apply plugin: 'distribution' |
| apply plugin: 'signing' |
| |
| war { |
| archiveFileName = 'fineract-provider.war' |
| from("$rootDir/licenses/binary/") { |
| // notice the parens |
| into "WEB-INF/licenses/binary/" // no leading slash |
| } |
| from("$rootDir/LICENSE_RELEASE") { |
| // notice the parens |
| into "WEB-INF/" // no leading slash |
| } |
| from("$rootDir/NOTICE_RELEASE") { |
| // notice the parens |
| into "WEB-INF/" // no leading slash |
| } |
| rename ('LICENSE_RELEASE', 'LICENSE') |
| rename ('NOTICE_RELEASE', 'NOTICE') |
| |
| from("$rootDir/DISCLAIMER") { |
| // notice the parens |
| into "WEB-INF/" // no leading slash |
| } |
| enabled = true |
| classifier = '' |
| } |
| |
| dependencies { |
| implementation project(':fineract-provider') |
| } |
| |
| tasks.withType(Tar) { |
| compression Compression.GZIP |
| extension 'tar.gz' |
| } |
| |
| distributions { |
| binary { |
| if(project.hasProperty("distVersion")) { |
| distributionBaseName = "apache-fineract-$distVersion-binary" |
| } else { |
| distributionBaseName = "apache-fineract-binary" |
| } |
| contents { |
| from ("$rootDir/fineract-client/build/libs/") { |
| include 'fineract-client-*.jar' |
| } |
| from ("$rootDir/fineract-provider/build/libs/") { |
| include 'fineract-provider-*.jar' |
| exclude 'fineract-provider-*-plain.jar' |
| } |
| from war |
| from("$rootDir/licenses/") { |
| into "licenses/" |
| } |
| from "$rootDir/LICENSE_RELEASE" |
| from "$rootDir/NOTICE_RELEASE" |
| rename ('LICENSE_RELEASE', 'LICENSE') |
| rename ('NOTICE_RELEASE', 'NOTICE') |
| |
| from "$rootDir/DISCLAIMER" |
| from "$rootDir/README.md" |
| } |
| } |
| src { |
| if(project.hasProperty("distVersion")) { |
| distributionBaseName = "apache-fineract-$distVersion-src" |
| } else { |
| distributionBaseName = "apache-fineract-src" |
| } |
| |
| contents { |
| from "$rootDir/" |
| exclude '**/build' , '.git', '**/.gradle', '.github', '**/.settings', '**/.project', '**/.classpath', '.idea', 'out', '._.DS_Store', '.DS_Store', 'WebContent', '**/.externalToolbuilders', '.theia', '.gitpod.yml', '.travis.yml', 'LICENSE_RELEASE', 'NOTICE_RELEASE', '**/licenses', '*.class', '**/bin', '*.log', '.dockerignore', '**/.gitkeep' |
| rename ('LICENSE_SOURCE', 'LICENSE') |
| rename ('NOTICE_SOURCE', 'NOTICE') |
| } |
| } |
| } |
| |
| tasks.binaryDistZip.enabled false |
| tasks.srcDistZip.enabled false |
| tasks.binaryDistTar.dependsOn war |
| // tasks.srcDistTar.dependsOn prepareInputYaml |
| |
| // create signatures and checksums only if project parameter "fineract.release" is provided on the command line |
| if( project.hasProperty("fineract.release") ) { |
| signing { |
| useGpgCmd() |
| sign (binaryDistTar, srcDistTar) |
| } |
| tasks.withType(Tar) { task -> |
| task.doLast { |
| ant.checksum file: task.archivePath, algorithm: 'SHA-512', fileext: '.sha512' |
| } |
| } |
| tasks.withType(Sign) { task -> |
| task.doLast { |
| task.getFilesToSign().each { f -> |
| new ByteArrayOutputStream().withStream { os -> |
| def result = exec { |
| workingDir "$buildDir/distributions" |
| executable 'sh' |
| args '-c', "gpg --verify ${f}.asc" |
| standardOutput = os |
| } |
| if(result.exitValue==0) { |
| println '+++ GPG signature correct!' |
| } else { |
| println '--- GPG signature incorrect!' |
| throw new RuntimeException('--- GPG signature incorrect!') |
| } |
| } |
| } |
| } |
| } |
| } |