| /** |
| * 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' |
| retrofitVersion = '2.9.0' |
| okhttpVersion = '4.7.2' |
| oltuVersion = '1.0.1' |
| fineractJavaProjects = subprojects.findAll{ |
| [ |
| 'fineract-api', |
| 'fineract-provider', |
| 'fineract-client' |
| ].contains(it.name) |
| } |
| fineractPublishProjects = subprojects.findAll{ |
| [ |
| 'fineract-client' |
| ].contains(it.name) |
| } |
| } |
| repositories { |
| jcenter() |
| maven { url "https://plugins.gradle.org/m2/" } |
| } |
| |
| dependencies { |
| classpath 'com.bmuschko:gradle-cargo-plugin:2.7.1' |
| 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 "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.5.1" |
| classpath "gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0" |
| } |
| } |
| |
| plugins { |
| id 'io.spring.dependency-management' version '1.0.10.RELEASE' |
| id 'com.diffplug.spotless' version '5.6.1' apply false |
| id 'org.nosphere.apache.rat' version '0.7.0' apply false |
| id 'com.github.hierynomus.license' version '0.15.0' apply false |
| id 'org.openapi.generator' version '4.3.1' apply false |
| id 'org.zeroturnaround.gradle.jrebel' version '1.1.10' apply false |
| id 'org.springframework.boot' version '2.3.4.RELEASE' apply false |
| id 'net.ltgt.errorprone' version '1.3.0' apply false |
| id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.1.5' apply false |
| id 'com.gorylenko.gradle-git-properties' version '2.2.4' apply false |
| } |
| |
| 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' |
| apply plugin: 'com.github.hierynomus.license' |
| apply plugin: 'org.nosphere.apache.rat' |
| apply plugin: 'project-report' |
| |
| // Configuration for the dependency management plugin |
| // https://github.com/spring-gradle-plugins/dependency-management-plugin |
| dependencyManagement { |
| imports { |
| mavenBom 'org.springframework:spring-framework-bom:5.2.9.RELEASE' |
| } |
| |
| dependencies { |
| // We use fixed versions, instead of inheriting them from the Spring BOM, to be able to be on more recent ones. |
| // We do not use :+ to get the latest available version available on Maven Central, as that could suddenly break things. |
| // We use the Renovate Bot to automatically propose Pull Requests (PRs) when upgrades for all of these versions are available. |
| |
| dependency 'org.springframework.security.oauth:spring-security-oauth2:2.5.0.RELEASE' |
| dependency 'org.apache.openjpa:openjpa:3.1.2' // when upgrading, also change OpenJPA version repeated above in buildscript! |
| dependency 'com.squareup.retrofit:retrofit:1.9.0' |
| dependency 'com.squareup.okhttp:okhttp:2.7.5' |
| dependency 'com.squareup.okhttp:okhttp-urlconnection:2.7.5' |
| dependency 'com.google.guava:guava:30.0-jre' |
| dependency 'com.google.code.gson:gson:2.8.6' |
| dependency 'org.apache.commons:commons-email:1.5' |
| dependency 'commons-io:commons-io:2.8.0' |
| dependency 'org.drizzle.jdbc:drizzle-jdbc:1.4' |
| dependency 'com.github.librepdf:openpdf:1.3.22' |
| dependency 'org.mnode.ical4j:ical4j:3.0.20' |
| dependency 'org.quartz-scheduler:quartz:2.3.2' |
| dependency 'com.amazonaws:aws-java-sdk-s3:1.11.874' |
| dependency 'org.ehcache:ehcache:3.9.0' |
| dependency 'com.github.spullara.mustache.java:compiler:0.9.7' |
| dependency 'com.jayway.jsonpath:json-path:2.4.0' |
| dependency 'org.apache.tika:tika-core:1.24.1' |
| dependency 'org.apache.httpcomponents:httpclient:4.5.13' |
| dependency 'io.swagger.core.v3:swagger-annotations:2.1.5' |
| dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4' |
| dependency 'jakarta.jms:jakarta.jms-api:2.0.3' |
| dependency 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3' |
| dependency 'jakarta.validation:jakarta.validation-api:3.0.0' |
| dependency 'org.apache.activemq:activemq-broker:5.16.0' |
| dependency 'org.apache.bval:org.apache.bval.bundle:2.0.4' |
| dependency 'org.mockito:mockito-core:3.5.15' |
| dependency 'org.mockito:mockito-junit-jupiter:3.5.15' |
| dependency 'io.github.classgraph:classgraph:4.8.90' |
| dependency 'org.awaitility:awaitility:4.0.3' |
| dependency 'com.github.spotbugs:spotbugs-annotations:4.1.4' |
| dependency 'javax.cache:cache-api:1.1.1' |
| dependency 'org.mock-server:mockserver-junit-jupiter:5.11.1' |
| dependency 'org.webjars.npm:swagger-ui-dist:3.35.2' |
| dependency 'org.webjars:webjars-locator-core:0.46' |
| |
| // fineract client dependencies |
| dependency "com.squareup.retrofit2:retrofit:$retrofitVersion" |
| dependency "com.squareup.retrofit2:retrofit-mock:$retrofitVersion" |
| dependency "com.squareup.retrofit2:adapter-java8:$retrofitVersion" |
| dependency "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion" |
| dependency "com.squareup.retrofit2:adapter-rxjava3:$retrofitVersion" |
| dependency "com.squareup.retrofit2:adapter-guava:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-wire:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-jackson:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-simplexml:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-jaxb:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-java8:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-scalars:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-gson:$retrofitVersion" |
| dependency "com.squareup.retrofit2:converter-protobuf:$retrofitVersion" |
| dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.common:$oltuVersion" |
| dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltuVersion" |
| dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.httpclient4:$oltuVersion" |
| dependency "com.squareup.okhttp3:okhttp:$okhttpVersion" |
| dependency "com.squareup.okhttp3:okcurl:$okhttpVersion" |
| dependency "com.squareup.okhttp3:logging-interceptor:$okhttpVersion" |
| dependency "com.squareup.okhttp3:okhttp-apache:$okhttpVersion" |
| dependency "com.squareup.okhttp3:okhttp-android-support:$okhttpVersion" |
| dependency "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion" |
| dependency "com.squareup.okhttp3:okhttp-sse:$okhttpVersion" |
| dependency "io.gsonfire:gson-fire:1.8.4" |
| dependency "io.swagger:swagger-core:1.6.2" |
| dependency "io.swagger:swagger-annotations:1.6.2" |
| dependency "javax.annotation:javax.annotation-api:1.3.2" |
| dependency "com.google.code.findbugs:jsr305:3.0.2" |
| dependency "commons-codec:commons-codec:1.15" |
| |
| dependency ('org.flywaydb:flyway-core:7.0.0') { |
| // https://issues.apache.org/jira/browse/FINERACT-1172 |
| // https://github.com/apache/fineract/pull/1355 |
| // https://github.com/flyway/flyway/issues/2957 |
| // exclude conflicting non-<optional> dependencies from https://github.com/flyway/flyway/blob/master/flyway-core/pom.xml |
| exclude 'software.amazon.awssdk:s3' |
| } |
| |
| dependency ('org.dom4j:dom4j:2.1.3') { |
| exclude 'relaxngDatatype:relaxngDatatype' // already in com.sun.xml.bind:jaxb-osgi:2.3.0.1 |
| // FINERACT-940 && FINERACT-966 https://github.com/spotbugs/spotbugs/issues/1128 |
| exclude 'xpp3:xpp3' |
| exclude 'pull-parser:pull-parser' |
| } |
| |
| dependencySet(group: 'com.sun.jersey', version: jerseyVersion) { |
| entry 'jersey-core' |
| entry 'jersey-servlet' |
| entry 'jersey-server' |
| entry 'jersey-json' |
| } |
| dependencySet(group: 'com.sun.jersey.contribs', version: jerseyVersion) { |
| entry 'jersey-spring' |
| entry 'jersey-multipart' |
| } |
| dependencySet(group: 'org.apache.poi', version: '4.1.2') { |
| entry 'poi' |
| entry 'poi-ooxml' |
| entry 'poi-ooxml-schemas' |
| } |
| dependencySet(group: 'io.rest-assured', version: '4.3.0') |
| { |
| entry 'rest-assured' |
| entry 'json-path' |
| entry 'xml-path' |
| } |
| } |
| } |
| |
| // Configuration for the spotless plugin |
| // https://github.com/diffplug/spotless/tree/main/plugin-gradle |
| spotless { |
| format 'misc', { |
| target '**/*.md', '**/*.properties', '**/.gitignore', '**/.openapi-generator-ignore', '**/*.yml', '**/*.xml', '**/**.json', '**/*.sql' |
| targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**', '**/.gradle/**', '**/gradlew.bat' |
| indentWithSpaces(4) |
| endWithNewline() |
| trimTrailingWhitespace() |
| } |
| |
| groovyGradle { |
| target '*.gradle', '**/*.gradle' |
| targetExclude '**/build/**' |
| greclipse() |
| indentWithSpaces(4) |
| endWithNewline() |
| trimTrailingWhitespace() |
| } |
| |
| lineEndings 'UNIX' |
| } |
| |
| // Configuration for Gradle license plug-in |
| // https://github.com/hierynomus/license-gradle-plugin |
| license { |
| header rootProject.file("$rootDir/APACHE_LICENSETEXT.md") |
| excludes([ |
| "**/gradlew*", |
| "**/git.properties", |
| "**/*.html", |
| "**/*.mustache", |
| "**/package-info.java", |
| "**/keystore.jks", |
| "**/static/swagger-ui/**", |
| "**/api-docs/**", |
| ]) |
| strictCheck true |
| } |
| |
| task licenseFormatBuildScripts (type:nl.javadude.gradle.plugins.license.License) { |
| source = fileTree(dir: "$rootDir/", includes: [ |
| '**/*.bat', |
| '**/*.sh', |
| '**/*.sql' |
| ], excludes: [ |
| '**/gradlew*' |
| ]) |
| } |
| licenseFormat.dependsOn licenseFormatBuildScripts |
| |
| // Configuration for Apache Release Audit Tool task |
| // https://github.com/eskatos/creadur-rat-gradle |
| rat { |
| verbose = false |
| reportDir = file("$buildDir/reports/rat") |
| excludes = [ |
| '**/src/main/templates/**/*.mustache', |
| '**/.dockerignore', |
| '**/*.launch', |
| '**/licenses/**', |
| '**/*.md', |
| '**/*.github/**', |
| '**/MANIFEST.MF', |
| '**/*.json', |
| '**/*.json.template', |
| '**/*.txt', |
| '**/*.log', |
| '**/fineractdev-eclipse-preferences.epf', |
| '**/template-expected.html', |
| '**/template.mustache', |
| '**/.classpath', |
| '**/.project', |
| '**/.idea/**', |
| '**/*.ipr', |
| '**/*.iws', |
| '**/.settings/**', |
| '**/bin/**', |
| '**/.git/**', |
| '**/.gitignore', |
| '**/.openapi-generator-ignore', |
| '**/.gitkeep', |
| '**/*.iml', |
| '**/config/swagger/templates/**', |
| // Notice files |
| '**/NOTICE_RELEASE', |
| '**/NOTICE_SOURCE', |
| // Swagger License |
| '**/src/main/resources/static/swagger-ui/**', |
| // gradle |
| '**/.gradle/**', |
| '**/gradlew', |
| '**/gradlew.bat', |
| '**/gradle/wrapper/gradle-wrapper.properties', |
| '**/caches/**', |
| '**/daemon/**', |
| '**/native/**', |
| '**/wrapper/**', |
| '**/build/**', |
| // Api Docs |
| '**/api-docs/*.*', |
| '**/docs/system-architecture/.htaccess', |
| '**/docs/system-architecture/404.html', |
| '**/docs/system-architecture/index.html', |
| '**/docs/system-architecture/**/*.xml', |
| '**/bootstrap-3.0.0/assets/application.js', |
| '**/system-architecture/js/plugins.js', |
| // Apache License |
| '**/bootstrap-3.0.0/assets/less.js', |
| '**/css/bootstrap-3.0.0/**/*.*', |
| // Public Domain See http://www.JSON.org/js.html |
| '**/bootstrap-3.0.0/assets/json2.js.htm', |
| // MIT License |
| '**/modernizr-2.6.2.min.js', |
| '**/css/normalize.css', |
| '**/assets/filesaver.js', |
| '**/css/fonts/glyphicons-halflings-regular.svg', |
| '**/assets/jszip.js', |
| '**/assets/jquery.js', |
| '**/api-docs/jquery-1.7.min.js', |
| '**/css/toc-0.1.2/**/*.*', |
| '**/docs/system-architecture/css/main.css', |
| '**/system-architecture/js/vendor/jquery-1.9.1.min.js', |
| '**/system-architecture/js/vendor/toc-0.1.2/jquery.toc.min.js', |
| '**/assets/respond.min.js', |
| '**/assets/html5shiv.js', |
| // BSD License |
| '**/assets/uglify.js', |
| // Ignore out folder |
| '**/out/**', |
| // Git build info |
| "**/git.properties", |
| ".mailmap", |
| ] |
| } |
| } |
| |
| configure(project.fineractJavaProjects) { |
| // NOTE: order matters! |
| |
| apply plugin: 'java-library' |
| apply plugin: 'idea' |
| apply plugin: 'checkstyle' |
| apply plugin: 'jacoco' |
| apply plugin: "net.ltgt.errorprone" |
| apply plugin: "com.github.spotbugs" |
| apply plugin: 'com.github.andygoossens.gradle-modernizer-plugin' |
| |
| /* define the valid syntax level for source files */ |
| sourceCompatibility = JavaVersion.VERSION_11 |
| /* define binary compatibility version */ |
| targetCompatibility = JavaVersion.VERSION_11 |
| |
| /* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ |
| sourceSets.main.output.resourcesDir = sourceSets.main.java.outputDir |
| sourceSets.test.output.resourcesDir = sourceSets.test.java.outputDir |
| |
| sourceSets { |
| integrationTest { |
| compileClasspath += main.output + test.output |
| runtimeClasspath += main.output + test.output |
| } |
| } |
| |
| configurations { |
| implementation.setCanBeResolved(true) |
| api.setCanBeResolved(true) |
| |
| integrationTestCompile.extendsFrom testImplementation |
| integrationTestRuntime.extendsFrom testRuntime |
| } |
| |
| tasks.withType(JavaCompile) { |
| options.compilerArgs += [ |
| "-Xlint:unchecked", |
| "-Xlint:cast", |
| "-Xlint:auxiliaryclass", |
| "-Xlint:deprecation", |
| "-Xlint:dep-ann", |
| "-Xlint:divzero", |
| "-Xlint:empty", |
| "-Xlint:exports", |
| "-Xlint:fallthrough", |
| "-Xlint:finally", |
| "-Xlint:module", |
| "-Xlint:opens", |
| "-Xlint:options", |
| "-Xlint:overloads", |
| "-Xlint:overrides", |
| "-Xlint:path", |
| "-Xlint:processing", |
| "-Xlint:removal", |
| "-Xlint:requires-automatic", |
| "-Xlint:requires-transitive-automatic", |
| "-Xlint:try", |
| "-Xlint:varargs", |
| "-Xlint:preview", |
| "-Xlint:static", |
| "-Werror" |
| ] |
| // TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X") |
| |
| options.deprecation = true |
| |
| options.compilerArgs +=[ |
| "-Xmaxwarns", |
| 1500, |
| "-Xmaxerrs", |
| 1500 |
| ] |
| } |
| |
| // Configuration for the spotless plugin |
| // https://github.com/diffplug/spotless/tree/main/plugin-gradle |
| spotless { |
| 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(' ') + ' ' |
| } |
| ) |
| } |
| ) |
| } |
| } |
| |
| lineEndings 'UNIX' |
| } |
| |
| compileJava { |
| if (project.hasProperty('automatedBuild')) { |
| dependsOn(spotlessCheck) |
| } else { |
| dependsOn(spotlessApply) |
| } |
| } |
| |
| // If we are running Gradle within Eclipse to enhance classes with OpenJPA, |
| // set the classes directory to point to Eclipse's default build directory |
| if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') { |
| sourceSets.main.java.outputDir = file("$projectDir/bin/main") |
| } |
| |
| // Configuration for the Checkstyle plugin |
| // https://docs.gradle.org/current/userguide/checkstyle_plugin.html |
| dependencies { |
| checkstyle 'com.puppycrawl.tools:checkstyle:8.36.2' |
| checkstyle 'com.github.sevntu-checkstyle:sevntu-checks:1.37.1' |
| } |
| |
| // Configuration for JaCoCo code coverage task |
| // https://www.eclemma.org/jacoco/ |
| jacoco { |
| toolVersion = jacocoVersion |
| reportsDir = file("$buildDir/reports/jacoco") |
| } |
| |
| jacocoTestReport { |
| reports { |
| html.enabled=true |
| xml.enabled=true |
| html.destination file("${buildDir}/code-coverage") |
| } |
| } |
| |
| // Configuration for the errorprone plugin |
| // https://github.com/tbroyer/gradle-errorprone-plugin |
| dependencies { |
| errorprone "com.google.errorprone:error_prone_core:2.4.0" |
| } |
| |
| tasks.withType(JavaCompile) { |
| options.errorprone { |
| disableWarningsInGeneratedCode = true |
| excludedPaths = ".*/build/.*" |
| //Todo Remove necessary checks from this list |
| disable( |
| "UnusedVariable", |
| "TypeParameterUnusedInFormals", |
| "JdkObsolete", |
| "EmptyBlockTag", |
| "MissingSummary", |
| "InvalidParam", |
| "ReturnFromVoid", |
| "AlmostJavadoc", |
| "InvalidBlockTag", |
| ) |
| //TODO gradually enable these checks |
| error( |
| "DefaultCharset", |
| "RemoveUnusedImports", |
| "WaitNotInLoop", |
| "ThreeLetterTimeZoneID", |
| "VariableNameSameAsType", |
| "UnnecessaryParentheses", |
| "MultipleTopLevelClasses", |
| "MixedMutabilityReturnType", |
| "MultiVariableDeclaration", |
| "AssertEqualsArgumentOrderChecker", |
| "EmptySetMultibindingContributions", |
| "BigDecimalEquals", |
| "MixedArrayDimensions", |
| "PackageLocation", |
| "UseBinds", |
| "BadImport", |
| "IntLongMath", |
| "FloatCast", |
| "ReachabilityFenceUsage", |
| "StreamResourceLeak", |
| "TruthIncompatibleType", |
| "ByteBufferBackingArray", |
| "SameNameButDifferent", |
| "OrphanedFormatString", |
| "CatchAndPrintStackTrace", |
| "ObjectToString", |
| "StringSplitter", |
| "AssertThrowsMultipleStatements", |
| "BoxedPrimitiveConstructor", |
| "EmptyCatch", |
| "BoxedPrimitiveEquality", |
| "SynchronizeOnNonFinalField", |
| "WildcardImport", |
| "FutureReturnValueIgnored", |
| "PrivateConstructorForNoninstantiableModule", |
| "ClassCanBeStatic", |
| "ClassNewInstance", |
| "UnnecessaryStaticImport", |
| "UnsafeFinalization", |
| "JodaPlusMinusLong", |
| "MutableMethodReturnType", |
| "SwitchDefault", |
| "VarTypeName", |
| "ArgumentSelectionDefectChecker", |
| "CompareToZero", |
| "InjectOnConstructorOfAbstractClass", |
| "ImmutableEnumChecker", |
| "NarrowingCompoundAssignment", |
| "MissingCasesInEnumSwitch", |
| "ReferenceEquality", |
| "UndefinedEquals", |
| "PublicConstructorForAbstractClass", |
| "UnescapedEntity", |
| "ModifyCollectionInEnhancedForLoop", |
| "NonCanonicalType", |
| "InvalidInlineTag", |
| "MutablePublicArray", |
| "StaticAssignmentInConstructor", |
| "ProtectedMembersInFinalClass", |
| "OperatorPrecedence", |
| "EqualsGetClass", |
| "EqualsUnsafeCast", |
| "DoubleBraceInitialization", |
| "UnnecessaryDefaultInEnumSwitch", |
| "UnusedNestedClass", |
| "UnusedMethod", |
| "ModifiedButNotUsed", |
| "InconsistentCapitalization", |
| "MissingOverride", |
| // "InvalidBlockTag", |
| // "InconsistentOverloads", |
| // "MethodCanBeStatic", |
| // "Var", |
| // "ConstantField", |
| // "UnnecessaryDefaultInEnumSwitch", |
| // "FieldCanBeFinal" |
| ) |
| } |
| } |
| |
| // Configuration for spotbugs plugin |
| // https://github.com/spotbugs/spotbugs-gradle-plugin |
| |
| // To generate an HTML report instead of XML |
| spotbugs { |
| reportLevel = 'high' |
| showProgress = true |
| } |
| // https://github.com/spotbugs/spotbugs-gradle-plugin/issues/242 |
| spotbugsMain { |
| reports { |
| html { |
| enabled = true |
| stylesheet = 'fancy-hist.xsl' |
| } |
| } |
| } |
| spotbugsTest { |
| reports { |
| html { |
| enabled = true |
| stylesheet = 'fancy-hist.xsl' |
| } |
| } |
| } |
| spotbugsIntegrationTest { |
| reports { |
| html { |
| enabled = true |
| stylesheet = 'fancy-hist.xsl' |
| } |
| } |
| } |
| |
| // Configuration for the modernizer plugin |
| // https://github.com/andygoossens/gradle-modernizer-plugin |
| modernizer { |
| includeTestClasses = true |
| failOnViolations = true |
| |
| violationLogLevel="error" |
| |
| javaVersion = project.targetCompatibility |
| |
| ignorePackages = [] |
| ignoreGeneratedClasses = true |
| |
| exclusions = [] |
| exclusionPatterns = [ |
| // To be removed when https://issues.apache.org/jira/browse/FINERACT-826 is fixed |
| 'org/joda/time/.*' |
| ] |
| } |
| } |
| |
| configure(project.fineractPublishProjects) { |
| apply plugin: 'maven' |
| apply plugin: 'maven-publish' |
| |
| publishing { |
| publications { |
| mavenJava(MavenPublication) { |
| from components.java |
| |
| versionMapping { |
| usage('java-api') { |
| fromResolutionOf('runtimeClasspath') |
| } |
| usage('java-runtime') { |
| fromResolutionResult() |
| } |
| } |
| |
| pom { |
| name = 'Fineract' |
| description = 'A secure, multi-tenanted microfinance platform' |
| url = 'https://fineract.apache.org' |
| licenses { |
| license { |
| name = 'The Apache License, Version 2.0' |
| url = 'http://www.apache.org/licenses/LICENSE-2.0.html' |
| } |
| } |
| scm { |
| connection = 'scm:git:https://github.com/apache/fineract.git' |
| developerConnection = 'scm:git:git://github.com:apache/fineract.git' |
| url = 'https://fineract.apache.org/' |
| } |
| } |
| } |
| } |
| |
| // TODO FINERACT-1102: Actually use this to deploy to ASF (Apache Software Foundation) Nexus Maven Repository |
| } |
| } |