-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathbuild.gradle
More file actions
94 lines (82 loc) · 3.54 KB
/
Copy pathbuild.gradle
File metadata and controls
94 lines (82 loc) · 3.54 KB
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
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
*
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch 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.
*/
apply plugin: 'opensearch.hadoop.build.base'
apply plugin: 'java-library'
repositories {
mavenCentral()
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
configurations {
// Gradle's java library plugin adds a variant to each project that offers the classes dir as an artifact that can be
// used in other projects instead of requiring a jar operation to happen. We have artifacts that are being shaded into
// a third-party jar that this depends on, which inherently means there is no classes output to share for compilation.
// This will force the MR project to require jars from upstream project dependencies, which shouldn't be a problem since
// there should only be one upstream project.
compileClasspath {
attributes {
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, LibraryElements.JAR))
}
}
testCompileClasspath {
attributes {
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, LibraryElements.JAR))
}
}
itestCompileClasspath {
attributes {
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, LibraryElements.JAR))
}
}
}
tasks.named("test").configure {
onlyIf { JavaVersion.current() >= JavaVersion.VERSION_16 }
jvmArgs "--add-opens=java.base/java.io=ALL-UNNAMED" // Needed for IOUtils's BYTE_ARRAY_BUFFER reflection
}
dependencies {
api(project(':opensearch-hadoop-mr'))
api(project.ext.hadoopClient) {
exclude group: "commons-httpclient"
exclude group: 'com.fasterxml.jackson.core'
}
api("junit:junit:${project.ext.junitVersion}")
implementation(project(path: ":thirdparty", configuration: "shadow"))
implementation("org.hamcrest:hamcrest-all:${project.ext.hamcrestVersion}")
implementation("io.netty:netty-all:4.2.15.Final") {
because "Needed for creating mock SSL Server to test against"
}
implementation("org.apache.hadoop:hadoop-minikdc:${project.ext.minikdcVersion}") {
because "Embedding KDC in tests"
// For some reason, the dependencies that are pulled in with MiniKDC have multiple resource files
// that cause issues when they are loaded. We exclude the ldap schema data jar to get around this.
exclude group: "org.apache.directory.api", module: "api-ldap-schema-data"
exclude group: 'com.fasterxml.jackson.core'
}
}