Files
cbsnexora-backend/fineract-core/build.gradle
T

137 lines
4.1 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.
*/
description = 'Fineract Core'
apply plugin: 'java'
apply plugin: 'eclipse'
tasks.register('staticWeaveJpa', JavaExec) {
dependsOn classes
def classesDir = layout.buildDirectory.dir("classes/java/main").get().asFile
def outputDir = layout.buildDirectory.dir("weaved-classes").get().asFile
def persistenceInfo = layout.buildDirectory.dir('static-weaving').get()
copy {
from file("src/main/resources/jpa/static-weaving/module/core/persistence.xml")
into "${persistenceInfo}/META-INF/"
}
mainClass.set("org.eclipse.persistence.tools.weaving.jpa.StaticWeave")
classpath = sourceSets.main.runtimeClasspath
args = [
'-persistenceinfo', persistenceInfo,
classesDir.absolutePath,
outputDir.absolutePath
]
}
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
}
configurations {
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'
compileJava {
dependsOn ':fineract-avro-schemas:compileJava'
options.compilerArgs += ['-parameters']
}
// 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-core/bin/main")
}
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
sourceSets {
test {
java {
exclude '**/core/boot/tests/**'
}
}
}
}
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
)
}