Merge "Further clean up init.gradle." into oc-mr1-support-27.0-dev
diff --git a/buildSrc/init.gradle b/buildSrc/init.gradle
index 901d3c2..2b1fcf1 100644
--- a/buildSrc/init.gradle
+++ b/buildSrc/init.gradle
@@ -164,8 +164,6 @@
}
def configureSubProjects() {
- // lint every library
- def lintTask = project.tasks.create("lint")
subprojects {
repos.addMavenRepositories(repositories)
@@ -187,7 +185,6 @@
def isAndroidLibrary = "com.android.build.gradle.LibraryPlugin"
.equals(plugin.class.name)
def isAndroidApp = "com.android.build.gradle.AppPlugin".equals(plugin.class.name)
- def isJavaLibrary = "org.gradle.api.plugins.JavaPlugin".equals(plugin.class.name)
if (isAndroidLibrary || isAndroidApp) {
// Enable code coverage for debug builds only if we are not running inside the IDE,
@@ -217,29 +214,6 @@
v.assemble.dependsOn jarifyTask
}
}
-
- // Enforce NewApi lint check as fatal.
- project.android.lintOptions.fatal 'NewApi'
- lintTask.dependsOn {project.lint}
- }
-
- if (isAndroidLibrary || isJavaLibrary) {
- // Add library to the aggregate dependency report.
- task allDeps(type: DependencyReportTask) {}
-
- project.afterEvaluate {
- Upload uploadTask = (Upload) project.tasks.uploadArchives;
- uploadTask.repositories.mavenDeployer {
- repository(url: uri("$rootProject.ext.supportRepoOut"))
- setUniqueVersion(true)
- }
-
- // Before the upload, make sure the repo is ready.
- uploadTask.dependsOn rootProject.tasks.prepareRepo
-
- // Make the mainupload depend on this one.
- mainUpload.dependsOn uploadTask
- }
}
}
diff --git a/buildSrc/src/main/kotlin/android/support/MavenUploadHelper.kt b/buildSrc/src/main/kotlin/android/support/MavenUploadHelper.kt
index 1698bf9..319cbdd 100644
--- a/buildSrc/src/main/kotlin/android/support/MavenUploadHelper.kt
+++ b/buildSrc/src/main/kotlin/android/support/MavenUploadHelper.kt
@@ -21,15 +21,16 @@
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.artifacts.maven.MavenDeployer
import org.gradle.api.tasks.Upload
+import java.io.File
fun apply(project: Project, extension: SupportLibraryExtension) {
project.afterEvaluate {
if (extension.publish) {
if (extension.mavenGroup == null) {
- throw Exception("You must specify mavenGroup for " + project.name + " project");
+ throw Exception("You must specify mavenGroup for ${project.name} project")
}
if (extension.mavenVersion == null) {
- throw Exception("You must specify mavenVersion for " + project.name + " project");
+ throw Exception("You must specify mavenVersion for ${project.name} project")
}
project.group = extension.mavenGroup!!
project.version = extension.mavenVersion.toString()
@@ -40,9 +41,22 @@
// Set uploadArchives options.
val uploadTask = project.tasks.getByName("uploadArchives") as Upload
+
+ val repo = project.uri(project.rootProject.property("supportRepoOut") as File)
+ ?: throw Exception("supportRepoOut not set")
+
+ uploadTask.repositories {
+ it.withGroovyBuilder {
+ "mavenDeployer" {
+ "repository"(mapOf("url" to repo))
+ }
+ }
+ }
+
project.afterEvaluate {
if (extension.publish) {
uploadTask.repositories.withType(MavenDeployer::class.java) { mavenDeployer ->
+ mavenDeployer.isUniqueVersion = true
mavenDeployer.getPom().project {
it.withGroovyBuilder {
@@ -83,9 +97,9 @@
// https://github.com/gradle/gradle/issues/3170
uploadTask.doFirst {
val allDeps = HashSet<ProjectDependency>()
- collectDependenciesForConfiguration(allDeps, project, "api");
- collectDependenciesForConfiguration(allDeps, project, "implementation");
- collectDependenciesForConfiguration(allDeps, project, "compile");
+ collectDependenciesForConfiguration(allDeps, project, "api")
+ collectDependenciesForConfiguration(allDeps, project, "implementation")
+ collectDependenciesForConfiguration(allDeps, project, "compile")
mavenDeployer.getPom().whenConfigured {
it.dependencies.forEach { dep ->
@@ -95,10 +109,10 @@
val getGroupIdMethod =
dep::class.java.getDeclaredMethod("getGroupId")
- val groupId : String = getGroupIdMethod.invoke(dep) as String
+ val groupId: String = getGroupIdMethod.invoke(dep) as String
val getArtifactIdMethod =
dep::class.java.getDeclaredMethod("getArtifactId")
- val artifactId : String = getArtifactIdMethod.invoke(dep) as String
+ val artifactId: String = getArtifactIdMethod.invoke(dep) as String
if (isAndroidProject(groupId, artifactId, allDeps)) {
val setTypeMethod = dep::class.java.getDeclaredMethod("setType",
@@ -109,14 +123,23 @@
}
}
}
+
+ // Before the upload, make sure the repo is ready.
+ uploadTask.dependsOn(project.rootProject.tasks.getByName("prepareRepo"))
+
+ // Make the mainUpload depend on this uploadTask one.
+ project.rootProject.tasks.getByName("mainUpload").dependsOn(uploadTask)
} else {
uploadTask.enabled = false
}
}
}
-private fun collectDependenciesForConfiguration(projectDependencies : MutableSet<ProjectDependency>,
- project : Project, name : String) {
+private fun collectDependenciesForConfiguration(
+ projectDependencies: MutableSet<ProjectDependency>,
+ project: Project,
+ name: String
+) {
val config = project.configurations.findByName(name)
if (config != null) {
config.dependencies.withType(ProjectDependency::class.java).forEach {
@@ -125,8 +148,11 @@
}
}
-private fun isAndroidProject(groupId : String, artifactId : String,
- deps : Set<ProjectDependency>) : Boolean {
+private fun isAndroidProject(
+ groupId: String,
+ artifactId: String,
+ deps: Set<ProjectDependency>
+): Boolean {
for (dep in deps) {
if (dep.group == groupId && dep.name == artifactId) {
return dep.getDependencyProject().plugins.hasPlugin(LibraryPlugin::class.java)
diff --git a/buildSrc/src/main/kotlin/android/support/SupportAndroidLibraryPlugin.kt b/buildSrc/src/main/kotlin/android/support/SupportAndroidLibraryPlugin.kt
index 694ffbf..0ce100d 100644
--- a/buildSrc/src/main/kotlin/android/support/SupportAndroidLibraryPlugin.kt
+++ b/buildSrc/src/main/kotlin/android/support/SupportAndroidLibraryPlugin.kt
@@ -153,7 +153,7 @@
lintOptions.isNoLines = false
lintOptions.isQuiet = true
- lintOptions.error("NewApi")
+ lintOptions.fatal("NewApi")
// Set baseline file for all legacy lint warnings.
if (System.getenv("GRADLE_PLUGIN_VERSION") != null) {