/** * 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. */ // TODO: this is work in progress, please follow FINERACT-1171 buildscript { ext { jacocoVersion = '0.8.5' } repositories { jcenter() maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'com.bmuschko:gradle-cargo-plugin:2.7.1' classpath 'org.zeroturnaround:gradle-jrebel-plugin:1.1.10' classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.3.4.RELEASE' classpath 'gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin:0.15.0' classpath 'org.apache.openjpa:openjpa:3.1.2' // when upgrading, also change OpenJPA version repeated in fineract-provider/build.gradle! classpath 'com.radcortez.gradle:openjpa-gradle-plugin:3.1.0' classpath 'org.nosphere.apache:creadur-rat-gradle:0.7.0' classpath "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.5.1" classpath "gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0" classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:2.2.3" classpath "net.ltgt.gradle:gradle-errorprone-plugin:1.2.1" classpath "io.swagger.core.v3:swagger-gradle-plugin:2.1.5" classpath "gradle.plugin.org.hidetake:gradle-swagger-generator-plugin:2.18.2" } } plugins { id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'com.diffplug.spotless' version '5.6.1' } description = '''\ Run as: gradle clean bootRun''' project.ext.jerseyVersion = '1.19.4' ext['groovy.version'] = '3.0.6' allprojects { group = 'org.apache.fineract' repositories { jcenter() } apply plugin: 'io.spring.dependency-management' apply plugin: "com.diffplug.spotless" // Configuration for the spotless plugin // https://github.com/diffplug/spotless/tree/main/plugin-gradle spotless { format 'misc', { target '**/*.md', '**/*.properties', '**/.gitignore', '**/*.yml', '**/*.xml', '**/**.json', '**/*.sql' targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**', '**/.gradle/**' indentWithSpaces(4) endWithNewline() trimTrailingWhitespace() } groovyGradle { target '*.gradle', '**/*.gradle' targetExclude '**/build/**' greclipse() indentWithSpaces(4) endWithNewline() trimTrailingWhitespace() } if (plugins.hasPlugin('java')) { java { targetExclude '**/build/**', '**/bin/**', '**/out/**' importOrder() //sort imports alphabetically removeUnusedImports() eclipse().configFile "$rootDir/config/fineractdev-formatter.xml" endWithNewline() trimTrailingWhitespace() // Enforce style modifier order custom 'Modifier ordering', { def modifierRanking = [ public : 1, protected : 2, private : 3, abstract : 4, default : 5, static : 6, final : 7, transient : 8, volatile : 9, synchronized: 10, native : 11, strictfp : 12] // Find any instance of multiple modifiers. Lead with a non-word character to avoid // accidental matching against for instance, "an alternative default value" it.replaceAll(/\W(?:public |protected |private |abstract |default |static |final |transient |volatile |synchronized |native |strictfp ){2,}/, { // Do not replace the leading non-word character. Identify the modifiers it.replaceAll(/(?:public |protected |private |abstract |default |static |final |transient |volatile |synchronized |native |strictfp ){2,}/, { // Sort the modifiers according to the ranking above it.split().sort({ modifierRanking[it] }).join(' ') + ' ' } ) } ) } } if (project.hasProperty("automatedBuild")) { dependsOn(spotlessCheck) } else { dependsOn(spotlessApply) } } lineEndings 'UNIX' } }