| /* |
| * 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' |