mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 09:28:55 -04:00
This ensures we package an aggregation zip with all artifacts we want to publish to maven central as part of a release. Running zipAggregation will produce a zip file in the build/nmcp/zip folder. The content of this zip is meant to match the maven artifacts we have currently declared as dra maven artifacts.
107 lines
3.4 KiB
Groovy
107 lines
3.4 KiB
Groovy
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the "Elastic License
|
|
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
|
* Public License v 1"; you may not use this file except in compliance with, at
|
|
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
|
* License v3.0 only", or the "Server Side Public License, v 1".
|
|
*/
|
|
|
|
import org.gradle.plugins.ide.eclipse.model.SourceFolder
|
|
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'java-gradle-plugin'
|
|
id 'java-test-fixtures'
|
|
id 'eclipse'
|
|
}
|
|
|
|
group = "org.elasticsearch"
|
|
|
|
// This project contains Checkstyle rule implementations used by IDEs which use a Java 11 runtime
|
|
java {
|
|
targetCompatibility = 17
|
|
sourceCompatibility = 17
|
|
}
|
|
|
|
gradlePlugin {
|
|
// We already configure publication and we don't need or want the one that comes
|
|
// with the java-gradle-plugin
|
|
automatedPublishing = false
|
|
plugins {
|
|
internalLicenseheaders {
|
|
id = 'elasticsearch.internal-licenseheaders'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.precommit.LicenseHeadersPrecommitPlugin'
|
|
}
|
|
eclipse {
|
|
id = 'elasticsearch.eclipse'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.EclipseConventionPlugin'
|
|
}
|
|
publish {
|
|
id = 'elasticsearch.publish'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.PublishPlugin'
|
|
}
|
|
licensing {
|
|
id = 'elasticsearch.licensing'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.LicensingPlugin'
|
|
}
|
|
buildTools {
|
|
id = 'elasticsearch.build-tools'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.BuildToolsConventionsPlugin'
|
|
}
|
|
versions {
|
|
id = 'elasticsearch.versions'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.VersionPropertiesPlugin'
|
|
}
|
|
formatting {
|
|
id = 'elasticsearch.formatting'
|
|
implementationClass = 'org.elasticsearch.gradle.internal.conventions.precommit.FormattingPrecommitPlugin'
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
|
|
dependencies {
|
|
api buildLibs.maven.model
|
|
api buildLibs.shadow.plugin
|
|
api buildLibs.apache.rat
|
|
api buildLibs.nmcp
|
|
compileOnly buildLibs.checkstyle
|
|
constraints {
|
|
api("org.eclipse.platform:org.eclipse.osgi:3.18.300") {
|
|
because("Use the same version as we do in spotless gradle plugin at runtime")
|
|
}
|
|
}
|
|
api(buildLibs.spotless.plugin) {
|
|
exclude module: "groovy-xml"
|
|
}
|
|
}
|
|
|
|
project.getPlugins().withType(JavaBasePlugin.class) {
|
|
java.getModularity().getInferModulePath().set(false);
|
|
eclipse.getClasspath().getFile().whenMerged { classpath ->
|
|
/*
|
|
* give each source folder a unique corresponding output folder
|
|
* outside of the usual `build` folder. We can't put the build
|
|
* in the usual build folder because eclipse becomes *very* sad
|
|
* if we delete it. Which `gradlew clean` does all the time.
|
|
*/
|
|
classpath.getEntries().findAll { s -> s instanceof SourceFolder }.eachWithIndex { s, i ->
|
|
s.setOutput("out/eclipse" + i)
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.incremental = System.getenv("JENKINS_URL") == null && System.getenv("BUILDKITE_BUILD_URL") == null && System.getProperty("isCI") == null
|
|
}
|