mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 04:58:50 +00:00
Fails the build if any subprojects of `:libs` have dependencies in `:libs` except for `:libs:elasticsearch-core`. Since we now have three places where we resolve project substitutions I've added `dependencyToProject` to `project.ext` in all projects. It resolves both `project` style dependencies and "external" style (like "org.elasticsearch:elasticsearch-core:${version}") dependencies to `Project`s using the `projectSubstitutions`. I use this new function all three places where resovle project substitutions. Finally this pulls `apply plugin: 'elasticsearch.build'` out of `libs/*/build.gradle` and into a subprojects clause in `libs/build.gradle`. I do this entirely so that I can call `tasks.precommit.dependsOn checkDependencies` without waiting for the subprojects to be evaluated or worrying about whether or not they have `precommit` set up in a normal way.
72 lines
2.3 KiB
Groovy
72 lines
2.3 KiB
Groovy
/*
|
|
* 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.
|
|
*/
|
|
|
|
import org.elasticsearch.gradle.precommit.PrecommitTasks
|
|
|
|
apply plugin: 'nebula.maven-base-publish'
|
|
apply plugin: 'nebula.maven-scm'
|
|
|
|
archivesBaseName = 'elasticsearch-secure-sm'
|
|
|
|
publishing {
|
|
publications {
|
|
nebula {
|
|
artifactId = archivesBaseName
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// do not add non-test compile dependencies to secure-sm without a good reason to do so
|
|
|
|
testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
|
|
testCompile "junit:junit:${versions.junit}"
|
|
testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
|
|
|
|
if (isEclipse == false || project.path == ":libs:secure-sm-tests") {
|
|
testCompile("org.elasticsearch.test:framework:${version}") {
|
|
exclude group: 'org.elasticsearch', module: 'secure-sm'
|
|
}
|
|
}
|
|
}
|
|
|
|
forbiddenApisMain {
|
|
signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')]
|
|
}
|
|
|
|
if (isEclipse) {
|
|
// in Eclipse the project is under a fake root so we need to change around the source sets
|
|
sourceSets {
|
|
if (project.path == ":libs:secure-sm") {
|
|
main.java.srcDirs = ['java']
|
|
main.resources.srcDirs = ['resources']
|
|
} else {
|
|
test.java.srcDirs = ['java']
|
|
test.resources.srcDirs = ['resources']
|
|
}
|
|
}
|
|
}
|
|
|
|
// JAR hell is part of core which we do not want to add as a dependency
|
|
jarHell.enabled = false
|
|
|
|
namingConventions {
|
|
testClass = 'junit.framework.TestCase'
|
|
}
|