/
build.gradle
104 lines (87 loc) · 4.06 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
* Copyright 2014-present the original author or authors.
*
* Licensed 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.
*/
// *********************************************************************************************************************
// Apply plugins
// *********************************************************************************************************************
// Binary plugins -
// Due to Gradle's constrained syntax for the plugins block, binary plugin versions can't be expressed using Gradle
// properties (tokens) here. If worthwhile this could be achieved by moving the plugins to a pluginsManagement block in
// settings.gradle
plugins {
id 'eclipse'
id 'idea'
id 'java'
}
// *********************************************************************************************************************
// Project Properties
// *********************************************************************************************************************
// Standard project properties. These are used as default values by some assembly and release task, e.g. jar
// See gradle.properties and settings.gradle, e.g.
////project.name - Property defined in settings.gradle, overriding the default used by Gradle which is based on proj dir
////project.version - Property defined in gradle.properties
// Extra user-defined project properties
ext {
// Cribbed from https://github.com/mindscratch/reactor-offline/blob/master/build.gradle
javadocLinks = [
"https://docs.oracle.com/en/java/javase/17/docs/api/"
] as String[]
}
repositories {
mavenCentral()
}
dependencies {
//****************************************************************************************** Compile-time dependencies
//***************************************************************************************** Run-time only dependencies
//************************************************************************************************** Test dependencies
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}")
testImplementation("org.assertj:assertj-core:${assertjVersion}")
testImplementation("ch.qos.logback:logback-classic:${logbackClassicVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}")
}
// *********************************************************************************************************************
// Task configuration
// *********************************************************************************************************************
eclipse {
classpath {
downloadJavadoc = true // defaults to 'false'
}
}
idea {
project {
jdkName = '17'
languageLevel = '17'
}
}
test {
// Enable support for JUnit 5+
useJUnitPlatform()
testLogging {
showStandardStreams = true // Log any output that the tests write to stdout or stderr
events "passed", "skipped", "failed" // Log the execution of each test and its result
}
}
// *********************************************************************************************************************
// Tasks
// *********************************************************************************************************************
// Custom task for running javadoc on Java classes in src/test/java
task javadocTests(type: Javadoc, group: "documentation" ) {
description = 'Generates Javadoc API documentation for the test source code.'
source = sourceSets.test.allJava
classpath = sourceSets.test.compileClasspath
destinationDir = file("${buildDir}/docs/javadocTests")
options.links(project.ext.javadocLinks)
options.addBooleanOption('html5',true)
}