forked from apache/geode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
java.gradle
112 lines (100 loc) · 3.53 KB
/
java.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
103
104
105
106
107
108
109
110
111
112
/*
* 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.
*/
allprojects {
// There exist peculiarities surrounding our handling of ClassLoaders and cross-module resources,
// causing test failures if we apply the newer 'java-library' plugin.
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
}
subprojects {
dependencies {
// log4j-core has an annotation processor that is passed on the compile-classpath via geode-core and others.
// Fix Gradle warning here until we clean up our own classpath
annotationProcessor 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version'
}
String javaVersion = System.properties['java.version']
if (javaVersion.startsWith("1.8.0") && javaVersion.split("_")[1].toInteger() < 121) {
throw new GradleException("Java version 1.8.0_121 or later required, but was " + javaVersion)
}
// apply compiler options
gradle.taskGraph.whenReady({ graph ->
tasks.withType(JavaCompile).each { javac ->
javac.configure {
sourceCompatibility '1.8'
targetCompatibility '1.8'
options.encoding = 'UTF-8'
}
javac.options.incremental = true
javac.options.fork = true
if (project.hasProperty('compileJVM') && !compileJVM.trim().isEmpty()) {
javac.options.forkOptions.executable = compileJVM + "/bin/javac"
}
}
})
// apply default manifest
gradle.taskGraph.whenReady({ graph ->
tasks.withType(Jar).each { jar ->
jar.doFirst {
manifest {
attributes(
"Manifest-Version": "1.0",
"Created-By": System.getProperty("user.name"),
"Title": rootProject.name,
"Version": version,
"Organization": productOrg
)
}
}
jar.metaInf {
from("$rootDir/LICENSE")
if (jar.source.filter({ it.name.contains('NOTICE') }).empty) {
from("$rootDir/NOTICE")
}
}
}
})
configurations {
testOutput {
extendsFrom testCompile
description 'a dependency that exposes test artifacts'
}
}
// This ensures that javadoc and source jars also have any prefix paths stripped and will
// be created as libs/foo-sources.jar instead of libs/extensions/foo-sources.jar for example.
tasks.all { task ->
if (task instanceof Jar) {
baseName = sanitizedName()
}
}
task jarTest(type: Jar, dependsOn: testClasses) {
description 'Assembles a jar archive of test classes.'
from sourceSets.test.output
classifier 'test'
}
artifacts {
testOutput jarTest
}
javadoc {
destinationDir = file("$buildDir/javadoc")
options.addStringOption('Xdoclint:none', '-quiet')
options.encoding = 'UTF-8'
exclude "**/internal/**"
classpath += configurations.compileOnly
}
}