From b98cacd07379dd31c24f7a2a7f707f747d0566b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odin=20Asbj=C3=B8rnsen?= Date: Thu, 18 May 2023 16:14:04 +0200 Subject: [PATCH 1/2] Prepare permission-lint for Kotlin DSL migration --- permissions-lint/build.gradle | 42 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/permissions-lint/build.gradle b/permissions-lint/build.gradle index e8db4072d..250ab61a0 100644 --- a/permissions-lint/build.gradle +++ b/permissions-lint/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2021 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +15,10 @@ */ plugins { - id 'java-library' - id 'kotlin' - id 'org.jetbrains.dokka' - id 'com.android.lint' + id("java-library") + id("kotlin") + id("org.jetbrains.dokka") + id("com.android.lint") } kotlin { @@ -26,11 +26,11 @@ kotlin { } lintOptions { - htmlReport true - htmlOutput file("lint-report.html") - textReport true - absolutePaths false - ignoreTestSources true + htmlReport = true + htmlOutput = file("lint-report.html") + textReport = true + absolutePaths = false + ignoreTestSources = true } affectedTestConfiguration { @@ -67,19 +67,19 @@ tasks.named("jar").configure { task -> dependencies { // Bundle metadataJvm inside the Jar - bundleInside libs.kotlin.metadataJvm + bundleInside(libs.kotlin.metadataJvm) - compileOnly libs.android.tools.lint.api - compileOnly libs.kotlin.reflect - compileOnly libs.kotlin.stdlib - compileOnly libs.kotlin.stdlibJdk8 // Override version from transitive dependencies + compileOnly(libs.android.tools.lint.api) + compileOnly(libs.kotlin.reflect) + compileOnly(libs.kotlin.stdlib) + compileOnly(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies - testImplementation libs.junit - testImplementation libs.kotlin.reflect - testImplementation libs.kotlin.stdlib - testImplementation libs.kotlin.stdlibJdk8 // Override version from transitive dependencies - testImplementation libs.android.tools.lint.lint - testImplementation libs.android.tools.lint.tests + testImplementation(libs.junit) + testImplementation(libs.kotlin.reflect) + testImplementation(libs.kotlin.stdlib) + testImplementation(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies + testImplementation(libs.android.tools.lint.lint) + testImplementation(libs.android.tools.lint.tests) } java { From 5670636e1eee3cda8c5a3f0bed47f46ca9a091ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odin=20Asbj=C3=B8rnsen?= Date: Thu, 18 May 2023 17:42:10 +0200 Subject: [PATCH 2/2] Migrate permissions-lint to Kotlin DSL --- gradle/libs.versions.toml | 2 + .../{build.gradle => build.gradle.kts} | 46 +++++++++---------- 2 files changed, 25 insertions(+), 23 deletions(-) rename permissions-lint/{build.gradle => build.gradle.kts} (69%) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2e6194266..eddac9fc8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,7 @@ coroutines = "1.6.4" okhttp = "3.12.13" coil = "1.3.2" +androidlint = "25.3.0" androidxtest = "1.4.0" androidxnavigation = "2.7.0-alpha01" androidxWindow = "1.0.0" @@ -107,6 +108,7 @@ squareup-mockwebserver = "com.squareup.okhttp3:mockwebserver:4.9.3" android-application = { id = "com.android.application", version.ref = "gradlePlugin" } android-kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } android-library = { id = "com.android.library", version.ref = "gradlePlugin" } +android-lint = { id = "com.android.lint", version.ref = "androidlint"} jetbrains-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } gradle-metalava = { id = "me.tylerbwong.gradle.metalava", version.ref = "metalava" } vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "vanniktechPublish" } diff --git a/permissions-lint/build.gradle b/permissions-lint/build.gradle.kts similarity index 69% rename from permissions-lint/build.gradle rename to permissions-lint/build.gradle.kts index 250ab61a0..fa7376da1 100644 --- a/permissions-lint/build.gradle +++ b/permissions-lint/build.gradle.kts @@ -15,17 +15,17 @@ */ plugins { - id("java-library") + `java-library` id("kotlin") - id("org.jetbrains.dokka") - id("com.android.lint") + id(libs.plugins.jetbrains.dokka.get().pluginId) + id(libs.plugins.android.lint.get().pluginId) } kotlin { explicitApi() } -lintOptions { +lint { htmlReport = true htmlOutput = file("lint-report.html") textReport = true @@ -43,26 +43,26 @@ affectedTestConfiguration { * not currently support dependencies, so instead we need to bundle any dependencies with the * lint jar manually. (b/182319899) */ -def bundle = configurations.create("bundleInside") +val bundleInside: Configuration = configurations.create("bundleInside") // bundleInside dependencies should be included as compileOnly and testImplementation as well -configurations.getByName("compileOnly").setExtendsFrom([bundle]) -configurations.getByName("testImplementation").setExtendsFrom([bundle]) -tasks.named("jar").configure { task -> - def jarTask = task as Jar - jarTask.dependsOn(bundle) - jarTask.from({ - bundle - // The stdlib is already bundled with lint, so no need to include it manually - // in the lint.jar if any dependencies here depend on it - .filter { !it.name.contains("kotlin-stdlib") } - .collect { file -> - if (file.isDirectory()) { - file - } else { - zipTree(file) - } - } - }) +configurations.getByName("compileOnly").setExtendsFrom(setOf(bundleInside)) +configurations.getByName("testImplementation").setExtendsFrom(setOf(bundleInside)) + +tasks.getByName("jar") { + this.dependsOn(bundleInside) + this.from({ + bundleInside + // The stdlib is already bundled with lint, so no need to include it manually + // in the lint.jar if any dependencies here depend on it + .filter { !it.name.contains("kotlin-stdlib") } + .map { file -> + if (file.isDirectory) { + file + } else { + zipTree(file) + } + } + }) } dependencies {