diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2019-06-26 21:14:35 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-06-26 21:14:35 +0000 |
commit | 1ff1b4adeba799bbc9e7199dcfa0c665f2d6d7ef (patch) | |
tree | ca573c5a3aa0112c96c5e403fa9d971984596523 | |
parent | 8663360524f23c6bd04242a44fd2d6b81a0609a7 (diff) | |
parent | 0e123e62f556efe904e380e34176f2b9467659a7 (diff) | |
download | support-1ff1b4adeba799bbc9e7199dcfa0c665f2d6d7ef.tar.gz |
Merge "Cleanup use of Project.version" into androidx-master-dev
5 files changed, 29 insertions, 19 deletions
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt index c6478163104..636ff30179f 100644 --- a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt +++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt @@ -28,7 +28,7 @@ open class AndroidXExtension(val project: Project) { var mavenVersion: Version? = null set(value) { field = if (isSnapshotBuild()) value?.copy(extra = "-SNAPSHOT") else value - project.version = field?.toString() as Any + project.version = field as Any } var mavenGroup: LibraryGroup? = null var description: String? = null diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt index d44d7d85bac..edf1f3fd5af 100644 --- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt +++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt @@ -120,10 +120,9 @@ class AndroidXPlugin : Plugin<Project> { targetCompatibility = VERSION_1_8 } project.afterEvaluate { - verifyJava7Targeting( - project.version as String, - convention.sourceCompatibility - ) + if (androidXExtension.publish.shouldPublish()) { + verifyJava7Targeting(project.version(), convention.sourceCompatibility) + } } project.hideJavadocTask() @@ -151,7 +150,7 @@ class AndroidXPlugin : Plugin<Project> { configureAndroidLibraryOptions(project, androidXExtension) } project.configureSourceJarForAndroid(extension) - project.configureVersionFileWriter(extension) + project.configureVersionFileWriter(extension, androidXExtension) project.configureResourceApiChecks(extension) project.addCreateLibraryBuildInfoFileTask(androidXExtension) val verifyDependencyVersionsTask = project.createVerifyDependencyVersionsTask() @@ -488,9 +487,9 @@ class AndroidXPlugin : Plugin<Project> { } } - private fun verifyJava7Targeting(libraryVersion: String, javaVersion: JavaVersion) { + private fun verifyJava7Targeting(libraryVersion: Version, javaVersion: JavaVersion) { if (javaVersion == VERSION_1_7) { - if (libraryVersion.contains("alpha")) { + if (libraryVersion.isAlpha()) { throw IllegalStateException("You moved a library that was targeting " + "Java 7 to alpha version. Please remove " + "`sourceCompatibility = VERSION_1_7` from build.gradle") @@ -522,7 +521,9 @@ class AndroidXPlugin : Plugin<Project> { } project.afterEvaluate { - verifyJava7Targeting(project.version as String, compileOptions.sourceCompatibility) + if (androidXExtension.publish.shouldPublish()) { + verifyJava7Targeting(project.version(), compileOptions.sourceCompatibility) + } libraryVariants.all { libraryVariant -> if (libraryVariant.buildType.name == "debug") { diff --git a/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt b/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt index 41caad94b41..8500d4a67a3 100644 --- a/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt +++ b/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt @@ -34,7 +34,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() { project.extensions.findByType(AndroidXExtension::class.java) ?: return@subprojects val requireSameVersion = library.mavenGroup?.requireSameVersion ?: false if (requireSameVersion && library.publish.shouldRelease()) { - if (project.version == AndroidXExtension.DEFAULT_UNSPECIFIED_VERSION) { + if (!project.isVersionSet()) { throw GradleException("Library $group:${project.name} does not specify " + "a version, however it is within library group $group which requires" + " all member libraries to be of the same version") @@ -43,7 +43,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() { if (map.contains(group)) { val existingVersion = map.get(group)!!.first val libraryInSameGroup = map.get(group)!!.second - if (existingVersion != project.version) { + if (existingVersion != project.version.toString()) { throw GradleException("Library $group:${project.name} with version " + "${project.version} is part of the $group library group" + " which requires all member libraries to have the same " + @@ -51,7 +51,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() { " the same library group has different version $existingVersion") } } else { - map.put(group, Pair(project.version as String, project.name)) + map.put(group, Pair(project.version.toString(), project.name)) } } } diff --git a/buildSrc/src/main/kotlin/androidx/build/Version.kt b/buildSrc/src/main/kotlin/androidx/build/Version.kt index 43ca857434e..f98e6d46a6e 100644 --- a/buildSrc/src/main/kotlin/androidx/build/Version.kt +++ b/buildSrc/src/main/kotlin/androidx/build/Version.kt @@ -107,9 +107,12 @@ data class Version( } } -fun Project.setupVersion(extension: AndroidXExtension) = afterEvaluate { - @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS") - version = extension.mavenVersion?.toString() -} +fun Project.isVersionSet() = project.version is Version -fun Project.version() = Version(project.version as String) +fun Project.version(): Version { + return if (project.version is Version) { + project.version as Version + } else { + throw IllegalStateException("Tried to use project version for $name that was never set.") + } +} diff --git a/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt b/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt index fce3661f805..6ca5240b6bc 100644 --- a/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt +++ b/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt @@ -54,7 +54,13 @@ private val VERSION_FILE_PATH = "$RESOURCE_DIRECTORY/META-INF/%s_%s.version" * * @param project an Android Library project. */ -fun Project.configureVersionFileWriter(library: LibraryExtension) { +fun Project.configureVersionFileWriter( + library: LibraryExtension, + androidXExtension: AndroidXExtension +) { + // We only add version file if is a library that is publishing. + if (!androidXExtension.publish.shouldPublish()) return + val writeVersionFile = tasks.register("writeVersionFile", VersionFileWriterTask::class.java) @@ -62,7 +68,7 @@ fun Project.configureVersionFileWriter(library: LibraryExtension) { writeVersionFile.configure { val group = properties["group"] as String val artifactId = properties["name"] as String - val version = properties["version"] as String + val version = version().toString() // Add a java resource file to the library jar for version tracking purposes. val artifactName = File( |