blob: 592f544df2601dcce7dad099efc355c995f4b747 [file] [log] [blame]
/*
* 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.
*/
buildscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath "${libs.spotbugs.gradle.plugin.get()}"
classpath "${libs.spotless.plugin.gradle.get()}"
classpath "${libs.shadow.get()}"
classpath "${libs.cyclonedx.bom.get()}"
}
}
assert JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17): "Java 17 or newer is " +
"required"
allprojects {
group = "org.apache.spark.k8s.operator"
version = "0.6.0-SNAPSHOT"
}
tasks.register('buildDockerImage', Exec) {
String cmd = "docker build --build-arg APP_VERSION=${version} -t apache/spark-kubernetes-operator:${version} -f build-tools/docker/Dockerfile ."
println "Build Docker Image: $cmd"
commandLine "sh", "-c", "$cmd"
}
subprojects {
apply plugin: 'idea'
apply plugin: 'eclipse'
apply plugin: 'java'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
vendor = JvmVendorSpec.AZUL
}
}
tasks.withType(JavaCompile).configureEach {
options.release = 17
options.compilerArgs.add("-proc:full")
}
repositories {
// Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
// See https://storage-download.googleapis.com/maven-central/index.html
maven {
name = "GCS Maven Central mirror"
url = uri("https://maven-central.storage-download.googleapis.com/maven2/")
}
mavenCentral()
}
apply plugin: 'checkstyle'
checkstyle {
toolVersion = libs.versions.checkstyle.get()
configFile = file("$rootDir/config/checkstyle/checkstyle.xml")
ignoreFailures = false
showViolations = true
}
apply plugin: 'pmd'
pmd {
ruleSetFiles = files("$rootDir/config/pmd/ruleset.xml")
toolVersion = libs.versions.pmd.get()
consoleOutput = true
ignoreFailures = false
}
apply plugin: 'com.github.spotbugs'
spotbugs {
toolVersion = libs.versions.spotbugs.tool.get()
afterEvaluate {
reportsDir = file("${project.reporting.baseDirectory}/findbugs")
}
excludeFilter = file("$rootDir/config/spotbugs/spotbugs_exclude.xml")
ignoreFailures = false
}
apply plugin: 'jacoco'
jacoco {
toolVersion = libs.versions.jacoco.get()
}
jacocoTestReport {
dependsOn test
}
apply plugin: 'com.diffplug.spotless'
spotless {
java {
endWithNewline()
googleJavaFormat('1.28.0')
importOrder(
'java',
'javax',
'scala',
'',
'org.apache.spark',
)
toggleOffOn()
targetExclude "**/BaseResource.java"
trimTrailingWhitespace()
removeUnusedImports()
}
}
}
apply plugin: 'com.diffplug.spotless'
spotless {
format 'misc', {
target '*.md', '*.gradle', '**/*.properties', '**/*.xml', '**/*.yaml', '**/*.yml'
targetExclude "**/.idea/**"
endWithNewline()
trimTrailingWhitespace()
}
}
apply from: 'deploy.gradle'