-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
120 lines (101 loc) · 4.73 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/*
* 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.
*/
plugins {
id 'com.github.johnrengelman.shadow' version '5.2.0' apply false
}
subprojects {
apply plugin: 'scala'
apply plugin: 'com.github.johnrengelman.shadow'
// artifact properties
group = 'com.ververica.stateproc'
version = '1.11-SNAPSHOT'
description = """Lab: State Processor API"""
ext {
javaVersion = '1.8'
flinkVersion = '1.11.2'
scalaBinaryVersion = '2.12'
log4jVersion = '2.13.1'
}
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
// declare where to find the dependencies of your project
repositories {
mavenCentral()
}
// NOTE: We cannot use "compileOnly" or "shadow" configurations since then we could not run code
// in the IDE or with "gradle run". We also cannot exclude transitive dependencies from the
// shadowJar yet (see https://github.com/johnrengelman/shadow/issues/159).
// -> Explicitly define the // libraries we want to be included in the "flinkShadowJar" configuration!
configurations {
flinkShadowJar // dependencies which go into the shadowJar
// provided by Flink
flinkShadowJar.exclude group: 'org.apache.flink', module: 'force-shading'
flinkShadowJar.exclude group: 'com.google.code.findbugs', module: 'jsr305'
flinkShadowJar.exclude group: 'org.slf4j'
flinkShadowJar.exclude group: 'log4j'
flinkShadowJar.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
// already provided dependencies from serializer frameworks
flinkShadowJar.exclude group: 'com.esotericsoftware.kryo', module: 'kryo'
flinkShadowJar.exclude group: 'javax.servlet', module: 'servlet-api'
flinkShadowJar.exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
// common set of dependencies
dependencies {
implementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
implementation "org.apache.logging.log4j:log4j-core:${log4jVersion}"
implementation "org.apache.logging.log4j:log4j-jcl:${log4jVersion}"
compile "org.apache.flink:flink-scala_${scalaBinaryVersion}:${flinkVersion}"
compile "org.apache.flink:flink-runtime-web_${scalaBinaryVersion}:${flinkVersion}"
compile "org.apache.flink:flink-runtime_${scalaBinaryVersion}:${flinkVersion}"
compile "org.apache.flink:flink-streaming-scala_${scalaBinaryVersion}:${flinkVersion}"
if (project != project(":common")) {
implementation project(path: ':common')
// transitive dependencies for flinkShadowJar need to be defined above
// (the alternative of using configuration: 'shadow' does not work there because that adds a dependency on
// the jar file, not the sources)
flinkShadowJar project(path: ':common', transitive: false)
}
}
// make flinkShadowJar dependencies available:
sourceSets {
main.compileClasspath += configurations.flinkShadowJar
main.runtimeClasspath += configurations.flinkShadowJar
test.compileClasspath += configurations.flinkShadowJar
test.runtimeClasspath += configurations.flinkShadowJar
javadoc.classpath += configurations.flinkShadowJar
}
if (plugins.findPlugin('application')) {
applicationDefaultJvmArgs = ["-Dlog4j.configuration=log4j2.properties"]
run.classpath = sourceSets.main.runtimeClasspath
}
jar {
manifest {
attributes 'Built-By': System.getProperty('user.name'),
'Build-Jdk': System.getProperty('java.version')
}
}
shadowJar {
configurations = [project.configurations.flinkShadowJar]
mergeServiceFiles()
archiveBaseName.set("${project.parent.name}-${project.name}")
}
assemble.dependsOn(shadowJar)
}