127 lines
4.0 KiB
Groovy
127 lines
4.0 KiB
Groovy
/**
|
|
* 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.
|
|
*/
|
|
import org.apache.fineract.gradle.StaticWeaveJpaTask
|
|
description = 'Fineract Command'
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'me.champeau.jmh'
|
|
|
|
configurations {
|
|
asciidoctorExtensions
|
|
providedRuntime // needed for Spring Boot executable WAR
|
|
providedCompile
|
|
compile() {
|
|
exclude module: 'hibernate-entitymanager'
|
|
exclude module: 'hibernate-validator'
|
|
exclude module: 'activation'
|
|
exclude module: 'bcmail-jdk14'
|
|
exclude module: 'bcprov-jdk14'
|
|
exclude module: 'bctsp-jdk14'
|
|
exclude module: 'c3p0'
|
|
exclude module: 'stax-api'
|
|
exclude module: 'jaxb-api'
|
|
exclude module: 'jaxb-impl'
|
|
exclude module: 'jboss-logging'
|
|
exclude module: 'itext-rtf'
|
|
exclude module: 'classworlds'
|
|
}
|
|
runtime
|
|
}
|
|
|
|
apply from: 'dependencies.gradle'
|
|
|
|
// Configuration for the modernizer plugin
|
|
// https://github.com/andygoossens/gradle-modernizer-plugin
|
|
modernizer {
|
|
ignoreClassNamePatterns = [
|
|
'.*AbstractPersistableCustom',
|
|
'.*EntityTables',
|
|
'.*domain.*'
|
|
]
|
|
}
|
|
|
|
// 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 = new File(rootProject.projectDir, "fineract-command/bin/main")
|
|
}
|
|
|
|
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
|
|
sourceSets {
|
|
test {
|
|
java {
|
|
exclude '**/core/boot/tests/**'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
jmh {
|
|
// include = ['.*'] // Include all benchmarks (regex-based filter)
|
|
warmupIterations = 2 // Number of warm-up iterations
|
|
iterations = 3 // Number of measurement iterations
|
|
fork = 1 // Number of forks
|
|
timeOnIteration = '2s' // Time per iteration
|
|
benchmarkMode = ['thrpt'] // Default benchmark mode
|
|
}
|
|
|
|
tasks.register("staticWeaveJpa", StaticWeaveJpaTask) {
|
|
dependsOn classes
|
|
|
|
inputClasses.set(layout.buildDirectory.dir("classes/java/main").get())
|
|
persistenceXml.set(file("src/main/resources/jpa/static-weaving/module/command/persistence.xml"))
|
|
outputDir.set(layout.buildDirectory.dir("weaved-classes").get())
|
|
}
|
|
|
|
tasks.register("weavedJar", Jar) {
|
|
archiveClassifier.set("")
|
|
dependsOn staticWeaveJpa
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
from(layout.buildDirectory.dir("weaved-classes"))
|
|
exclude("META-INF/persistence.xml")
|
|
}
|
|
|
|
// Configure the default jar task to depend on weavedJar and use its output
|
|
tasks.named('jar') {
|
|
dependsOn weavedJar
|
|
enabled = false // Disable the default jar task
|
|
// The weavedJar will be used as the primary artifact
|
|
}
|
|
|
|
// Make sure the assemble task depends on weavedJar
|
|
tasks.named('assemble') {
|
|
dependsOn weavedJar
|
|
}
|
|
|
|
tasks.named("test") {
|
|
dependsOn staticWeaveJpa
|
|
|
|
def testClasses = layout.buildDirectory.dir("classes/java/test").get().asFile
|
|
def weavedClasses = layout.buildDirectory.dir("weaved-classes").get().asFile
|
|
def testResources = layout.buildDirectory.dir("resources/test").get().asFile
|
|
|
|
classpath = files(
|
|
weavedClasses,
|
|
testClasses,
|
|
testResources,
|
|
configurations.testRuntimeClasspath
|
|
)
|
|
}
|