forked from phdata/streamliner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
129 lines (115 loc) · 4.02 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
121
122
123
124
125
126
127
128
129
// 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.
// This file contains all of the dependencies required for the build.
// Centrally locating all of the dependencies ensures each subproject
// uses the same dependency version for all dependencies used.
// This file is the entry-point for the gradle build and contains
// common logic for the various subprojects in the build.
// Plugins and scripts are applied in the natural "build order"
// they are used to ensure there are no dependency issues.
// Plugins and scripts applied at the root level only, instead of per module.
plugins {
id "application"
id "idea"
id "java"
id "scala"
id "io.freefair.lombok"
// The below plugins are applied in quality.gradle
id "com.diffplug.spotless" apply false
id "com.github.spotbugs" apply false
id "com.github.ben-manes.versions" apply false
id 'cz.alenkacz.gradle.scalafmt' apply false
}
apply from: "$rootDir/gradle/properties.gradle"
apply from: "$rootDir/gradle/dependencies.gradle"
apply from: "$rootDir/gradle/wrapper.gradle"
apply from: "$rootDir/gradle/compile.gradle"
apply from: "$rootDir/gradle/tests.gradle"
apply from: "$rootDir/gradle/quality.gradle"
apply from: "$rootDir/gradle/publishing.gradle"
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
implementation libs.awsJavaSdkGlue
implementation libs.circeGeneric
implementation libs.circeYaml
implementation libs.commonsLang
implementation libs.findBugsAnnotations
implementation libs.graphvizJava
implementation libs.jacksonDataformatYaml
implementation libs.openCsv
implementation libs.redshift
implementation libs.scalaLibrary
implementation libs.scalateCore
implementation libs.scallop
implementation libs.schemacrawlerMysql
implementation libs.schemacrawlerPostgresql
implementation libs.schemacrawlerOracle
implementation libs.schemacrawlerDb2
implementation libs.schemacrawlerSqlserver
// JDBC Drivers
implementation libs.mysqlConnector
implementation libs.ojdbc
implementation libs.snowflakeJdbc
// Hive and Impala JDBC jars from lib directory
implementation fileTree(dir: 'lib', include: ['*.jar'])
// Logging
implementation libs.slf4j
implementation libs.slf4jLog4j12
testImplementation libs.junit
testImplementation libs.junitInterface
testImplementation libs.scalatest
testImplementation libs.mysqlTest
}
project.version = file("$rootDir/version").text.trim()
// Streamliner mixes Java and Scala in the same compilation step, so we
// remove the Java source set and add the Java code to the scala source set.
sourceSets {
main {
scala {
srcDirs = ['src/main/scala', 'src/main/java']
}
java {
srcDirs = []
}
}
}
// Configure the published application .tar and .zip.
application {
mainClass = "io.phdata.streamliner.App"
}
distributions {
main {
contents {
from ("src/main/resources") {
into "conf"
exclude "templates"
}
from ("src/main/resources/templates") {
into "templates"
}
}
}
}
// Publish the distribution zip.
publishing.publications {
myDistribution(MavenPublication) {
artifact distZip
}
}