mirror of
https://github.com/google/nomulus.git
synced 2025-05-22 04:09:46 +02:00
* Fix broken builds when Maven Central is used Gradle 6.2.1 apparently introduces a behavior change wrt boolean expression: empty string used to eval to false, but now evals to true. Pre Gradle 6.2.1, root project's Gradle properties apparently were not set to buildSrc. Now they are passed on to buildSrc -- mavenUrl in buildSrc changes from null to "". Both changes break the project when mavenUrl and/or pluginsUrl are not set on command line. Also added junit.jupiter-api as testCompile dependencies to projects. This is a directly used dependency, whose absence causes a Lint warning.
115 lines
3.4 KiB
Groovy
115 lines
3.4 KiB
Groovy
// Copyright 2019 The Nomulus Authors. All Rights Reserved.
|
|
//
|
|
// Licensed 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 static com.google.common.base.Strings.isNullOrEmpty;
|
|
|
|
buildscript {
|
|
if (project.enableDependencyLocking.toBoolean()) {
|
|
// Lock buildscript dependencies.
|
|
configurations.classpath {
|
|
resolutionStrategy.activateDependencyLocking()
|
|
}
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
// Java static analysis plugins. Keep versions consistent with ../build.gradle
|
|
id 'nebula.lint' version '16.0.2'
|
|
// Config helper for annotation processors such as AutoValue and Dagger.
|
|
// Ensures that source code is generated at an appropriate location.
|
|
id 'net.ltgt.apt' version '0.19' apply false
|
|
id 'net.ltgt.errorprone' version '0.6.1'
|
|
id 'checkstyle'
|
|
id 'com.diffplug.gradle.spotless' version '3.25.0'
|
|
}
|
|
|
|
if (rootProject.enableDependencyLocking.toBoolean()) {
|
|
// Lock application dependencies.
|
|
dependencyLocking {
|
|
lockAllConfigurations()
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
if (isNullOrEmpty(project.ext.properties.mavenUrl)) {
|
|
println "Java dependencies: Using Maven central..."
|
|
mavenCentral()
|
|
google()
|
|
} else {
|
|
maven {
|
|
println "Java dependencies: Using repo ${mavenUrl}..."
|
|
url mavenUrl
|
|
}
|
|
}
|
|
}
|
|
|
|
apply from: '../dependencies.gradle'
|
|
apply from: '../dependency_lic.gradle'
|
|
apply from: '../java_common.gradle'
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDirs += "${project.buildDir}/generated/source/apt/main"
|
|
}
|
|
}
|
|
}
|
|
|
|
checkstyle {
|
|
configDir file('../config/checkstyle')
|
|
}
|
|
|
|
dependencies {
|
|
def deps = dependencyMap
|
|
compile deps['com.google.auth:google-auth-library-credentials']
|
|
compile deps['com.google.auth:google-auth-library-oauth2-http']
|
|
compile deps['com.google.cloud:google-cloud-core']
|
|
compile deps['com.google.guava:guava']
|
|
compile deps['com.google.auto.value:auto-value-annotations']
|
|
compile deps['com.google.cloud:google-cloud-storage']
|
|
compile deps['org.apache.commons:commons-text']
|
|
compile deps['com.google.template:soy']
|
|
annotationProcessor deps['com.google.auto.value:auto-value']
|
|
testCompile deps['com.google.truth:truth']
|
|
testCompile deps['com.google.truth.extensions:truth-java8-extension']
|
|
testCompile deps['junit:junit']
|
|
testCompile deps['org.junit.jupiter:junit-jupiter-api']
|
|
testCompile deps['org.junit.jupiter:junit-jupiter-engine']
|
|
testCompile deps['org.junit.vintage:junit-vintage-engine']
|
|
testCompile deps['org.mockito:mockito-core']
|
|
}
|
|
|
|
gradle.projectsEvaluated {
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs << "-Xlint:unchecked"
|
|
}
|
|
}
|
|
|
|
task exportDependencies {
|
|
def outputFileProperty = 'dependencyExportFile'
|
|
def output = project.hasProperty(outputFileProperty)
|
|
? new PrintStream(
|
|
new File(project.getProperty(outputFileProperty)))
|
|
: System.out
|
|
|
|
doLast {
|
|
project.configurations.all {
|
|
it.dependencies.findAll {
|
|
it.group != null
|
|
}.each {
|
|
output.println("${it.group}:${it.name}")
|
|
}
|
|
}
|
|
}
|
|
}
|