129 lines
3.9 KiB
Groovy
129 lines
3.9 KiB
Groovy
import org.gradle.plugins.ide.eclipse.model.AccessRule
|
|
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
//apply plugin: 'java'
|
|
apply plugin: 'eclipse'
|
|
|
|
|
|
apply plugin: 'com.github.ben-manes.versions'
|
|
|
|
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
// usage: gradlew dependencyUpdates -Drevision=release
|
|
classpath 'com.github.ben-manes:gradle-versions-plugin:0.33.0'
|
|
}
|
|
}
|
|
|
|
ext {
|
|
|
|
javaVersion=14
|
|
|
|
version_log4j2= '2.13.3' // keep in sync with spring-boot-starter-log4j2
|
|
version_spring = '2.3.4.RELEASE'
|
|
version_junit = '5.7.0'
|
|
version_junit_platform = '1.7.0'
|
|
|
|
lib_antlr = "org.antlr:antlr4:4.8-1"
|
|
|
|
lib_commons_collections4 = 'org.apache.commons:commons-collections4:4.4'
|
|
lib_commons_lang3 = 'org.apache.commons:commons-lang3:3.11'
|
|
lib_jackson_databind = 'com.fasterxml.jackson.core:jackson-databind:2.11.2'
|
|
|
|
lib_log4j2_core = "org.apache.logging.log4j:log4j-core:${version_log4j2}"
|
|
lib_log4j2_slf4j_impl = "org.apache.logging.log4j:log4j-slf4j-impl:${version_log4j2}"
|
|
|
|
lib_primitive_collections='org.lucares:primitiveCollections:0.1.20191226154550'
|
|
|
|
lib_spring_boot_log4j2="org.springframework.boot:spring-boot-starter-log4j2:${version_spring}"
|
|
lib_spring_boot_test="org.springframework.boot:spring-boot-starter-test:${version_spring}"
|
|
lib_spring_boot_web="org.springframework.boot:spring-boot-starter-web:${version_spring}"
|
|
|
|
eclipseAccessRestrictions = [
|
|
'org.eclipse.jdt.launching.JRE_CONTAINER': [
|
|
new AccessRule('nonaccessible', 'com/sun/**'),
|
|
new AccessRule('nonaccessible', 'java/awt/List'),
|
|
new AccessRule('nonaccessible', 'sun/**'),
|
|
],
|
|
'assertj-core': [
|
|
new AccessRule('nonaccessible', 'org/assertj/core/internal/**'),
|
|
new AccessRule('nonaccessible', 'org/assertj/core/util/Arrays')
|
|
]
|
|
]
|
|
}
|
|
|
|
/*
|
|
* The shared configuration for all sub-projects:
|
|
*/
|
|
subprojects {
|
|
apply plugin: 'java-library'
|
|
apply plugin: 'eclipse'
|
|
|
|
compileJava.options.encoding = 'UTF-8'
|
|
|
|
// java compatibility version
|
|
sourceCompatibility = javaVersion
|
|
|
|
configurations {
|
|
tests
|
|
}
|
|
|
|
// the repositories for external depenencies
|
|
repositories {
|
|
maven {
|
|
url 'https://repo.lucares.de/'
|
|
content { includeGroup "org.lucares" }
|
|
}
|
|
mavenCentral(content: { excludeGroup "org.lucares" })
|
|
jcenter{
|
|
content { excludeGroup "org.lucares" }
|
|
}
|
|
}
|
|
|
|
test{
|
|
useJUnitPlatform {
|
|
includeEngines 'junit-jupiter'
|
|
excludeEngines 'junit-vintage'
|
|
}
|
|
}
|
|
|
|
// dependencies that all sub-projects have
|
|
dependencies {
|
|
testImplementation("org.junit.jupiter:junit-jupiter-engine:${version_junit}")
|
|
testImplementation "org.junit.jupiter:junit-jupiter-params:${version_junit}" // for @ParameterizedTest
|
|
testImplementation "org.junit.platform:junit-platform-launcher:${version_junit_platform}" // needed by eclipse
|
|
}
|
|
|
|
task eclipseSettings(type: Copy) {
|
|
from ("${rootProject.projectDir}/eclipse/") {
|
|
include '**/*.prefs'
|
|
filter(ReplaceTokens, tokens: [javaVersion: "${rootProject.javaVersion}".toString()])
|
|
}
|
|
into "${project.projectDir}/.settings/"
|
|
}
|
|
tasks.eclipseJdt.dependsOn eclipseSettings
|
|
tasks.cleanEclipseJdt.dependsOn cleanEclipseSettings
|
|
|
|
eclipse {
|
|
classpath {
|
|
file {
|
|
whenMerged {
|
|
eclipseAccessRestrictions.each{ path, restrictions ->
|
|
def container = entries.find { it.path.contains path }
|
|
if (container != null) {
|
|
container.accessRules.addAll(restrictions)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
wrapper {
|
|
gradleVersion = '6.6'
|
|
}
|