blob: 2a720567c64d7b9930ac71d56ea4442dd3e9b9c8 [file] [log] [blame]
/**
* 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.
*/
buildscript {
repositories {
mavenCentral()
}
}
plugins {
id "java"
id "org.openapi.generator" version "5.1.0"
id "com.github.hierynomus.license" version"0.15.0"
}
description = 'Fineract Credit Scorecard Build Tool'
ext['openapiSpecFile'] = "$rootDir/openapi.yml".toString()
license {
header rootProject.file("$rootDir/APACHE_LICENSETEXT.md")
excludes([
"**/gradlew*"
])
strictCheck true
}
task licenseFormatBuildScripts (type:nl.javadude.gradle.plugins.license.License) {
source = fileTree(dir: "$rootDir/", includes: [
'**/*.bat',
'**/*.sh',
'**/*.sql',
'**/*.java'
], excludes: [
'**/gradlew*'
])
}
licenseFormat.dependsOn licenseFormatBuildScripts
task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask){
inputSpec = "$openapiSpecFile"
}
openApiMeta {
generatorName = 'Fineract'
packageName = 'org.apache.fineract.credit.scorecard'
outputFolder = "$buildDir/meta".toString()
}
openApiValidate {
inputSpec = "$openapiSpecFile"
recommend = true
}
task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
generatorName = 'java'
verbose = false
validateSpec = true
skipValidateSpec = true
inputSpec = "$openapiSpecFile"
outputDir = "$buildDir/generated/java".toString()
groupId = 'org.apache.fineract.cn'
id = 'credit-scorecard-java-client'
apiPackage = 'org.apache.fineract.credit.scorecard.services'
invokerPackage = 'org.apache.fineract.credit.scorecard'
modelPackage = 'org.apache.fineract.credit.scorecard.models'
configOptions = [
dateLibrary: 'java8',
hideGenerationTimestamp: 'true',
]
generateModelTests = false
generateApiTests = false
finalizedBy = ["copyClients"]
}
task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
generatorName = 'typescript-angular'
verbose = false
validateSpec = false
skipValidateSpec = true
inputSpec = "$openapiSpecFile"
outputDir = "$buildDir/generated/typescript".toString()
apiPackage = 'org.apache.fineract.credit.scorecard.services'
invokerPackage = 'org.apache.fineract.credit.scorecard'
modelPackage = 'org.apache.fineract.credit.scorecard.models'
configOptions = [
apiModulePrefix: 'scorecard',
configurationPrefix: 'scorecard',
ngVersion: '10.0.0',
npmName: 'apache-fineract-credit-scorecard-client'
]
finalizedBy = [licenseFormat]
}
task copyClients {
copy {
from 'build/generated'
into 'clients'
exclude '**/*.sbt', '**/*.bat', '**/*.yml', '**/*.sh', '**/api', '**/.openapi-generator', '**/.openapi-generator-ignore', '**/gradle', '**/gradlew'
// filter(ReplaceTokens, tokens: [version: '2.3.1'])
}
finalizedBy = [licenseFormat]
}
sourceSets {
generated {
java {
srcDir "$buildDir/generated/java/src/main/java"
}
}
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
compileJava {
source += sourceSets.generated.java
}
configurations {
generatedCompile.extendsFrom implementation
generatedRuntime.extendsFrom runtime
}
test {
useJUnitPlatform()
}