We want to be able to use @SpringBootTest tests that fully initialize the Spring application. This is much easier done with Junit than TestNG. Gradle does not support (at least not easily) to run Junit and TestNG tests. Therefore we switch to Junit with all tests. The original reason for using TestNG was that Junit didn't support data providers. But that finally changed in Junit5 with ParameterizedTest.
127 lines
3.7 KiB
Groovy
127 lines
3.7 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.27.0'
|
|
}
|
|
}
|
|
|
|
ext {
|
|
|
|
javaVersion=12
|
|
|
|
version_log4j2= '2.12.1'
|
|
version_spring = '2.2.2.RELEASE'
|
|
|
|
lib_antlr = "org.antlr:antlr4:4.7.2"
|
|
|
|
lib_commons_collections4 = 'org.apache.commons:commons-collections4:4.4'
|
|
lib_commons_lang3 = 'org.apache.commons:commons-lang3:3.9'
|
|
lib_jackson_databind = 'com.fasterxml.jackson.core:jackson-databind:2.10.1'
|
|
|
|
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.20190929110023'
|
|
|
|
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:5.5.2'
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.5.2' // for @ParameterizedTest
|
|
testImplementation 'org.junit.platform:junit-platform-launcher:1.5.2' // 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.0'
|
|
}
|