Files
perfdb/build.gradle
Andreas Huber 07ad62ddd9 use Junit5 instead of TestNG
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.
2019-12-13 14:33:20 +01:00

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'
}