import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.utils.COMPILE import org.jetbrains.kotlin.gradle.utils.COMPILE_ONLY plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) id("kotlin-kapt") id("kotlin-parcelize") // id("maven-publish") // signing // id ("org.jreleaser") version "1.20.0"//JReleaser now has support for publishing via the Central Publisher Portal and can be used via their Gradle plugin integration. // id("org.jetbrains.dokka") version "2.0.0" // kotlin("jvm") version "2.1.0" // Generates HTML documentation id("org.jetbrains.dokka") version "2.1.0" // Generates Javadoc documentation id("org.jetbrains.dokka-javadoc") version "2.1.0" } android { namespace = "com.cusc.map" compileSdk = 35 defaultConfig { minSdk = 29 version = "2.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { // dataBinding = true viewBinding = true } android.libraryVariants.all { outputs.all { if (this is com.android.build.gradle.internal.api.LibraryVariantOutputImpl) { // val config = project.android.defaultConfig // val versionName = config.versionName // val formatter = DateTimeFormatter.ofPattern("yyyy_MM_dd_HHmm") // val createTime = LocalDateTime.now().format(formatter) outputFileName = "cusc_map_${version}.aar" } } } } dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar")))) implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.constraintlayout) implementation(libs.androidx.activity) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) // implementation("org.jetbrains.dokka:android-documentation-plugin:2.1.0") // dokkaJavadocPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:2.1.0") dokkaJavadocPlugin("org.jetbrains.dokka:kotlin-as-java-plugin") // dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin") api(project(":maplibs")) // Webview交互 api("com.github.lzyzsd:jsbridge:1.0.4") //四维高精地图依赖 // implementation("daohang.tingche.unityLibrary:adas:1.0") //高德 // implementation("com.amap.api:navi-3dmap:latest.integration") // implementation("com.amap.api:search:latest.integration") //网络 implementation("com.squareup.okhttp3:okhttp:3.12.0") implementation("com.google.code.gson:gson:2.8.6") // 权限请求框架 implementation("com.guolindev.permissionx:permissionx:1.8.1") // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") //fragment-ktx implementation("androidx.fragment:fragment-ktx:1.8.0") // compileOnly("org.jsoup:jsoup:1.17.2") // 最新稳定版 } dokka { /* pluginsConfiguration.html { // customAssets.from("logo.png") customStyleSheets.from("dokka/dokka-custom.css") // footerMessage.set("(c) Your Company") // separateInheritedMembers.set(false) // templatesDir.set(file("dokka/templates")) // mergeImplicitExpectActualDeclarations.set(false) }*/ dokkaPublications.html { offlineMode.set(true) } dokkaPublications.javadoc { moduleName.set("CMapSdk") // moduleVersion.set(project.version.toString()) description = "Android 地图SDK" // Standard output directory for HTML documentation // outputDirectory.set(layout.buildDirectory.dir("dokka/html")) failOnWarning.set(false) // 禁用包列表的树形展示 suppressInheritedMembers.set(true) suppressObviousFunctions.set(true) offlineMode.set(true) dokkaSourceSets { configureEach { includes.from("package-info.md") skipEmptyPackages.set(false) skipDeprecated.set(false) suppressGeneratedFiles.set(true) jdkVersion.set(17) documentedVisibilities.set(setOf(VisibilityModifier.Public)) // OR documentedVisibilities(VisibilityModifier.Public) perPackageOption { matchingRegex.set(".*map2d\\.amap|.*map2d\\.mine") suppress.set(true)//suppress = true:完全禁用匹配包的文档生成 } perPackageOption { matchingRegex.set(".*core.*|.*fragments.*|.*scenario\\.mine.*|overlay") suppress.set(true)//suppress = true:完全禁用匹配包的文档生成 } perPackageOption { matchingRegex.set(".*ui\\.dialog.*|.*ui\\.widget.*|.*utils.*|.*vms.*") suppress.set(true)//suppress = true:完全禁用匹配包的文档生成 // skipDeprecated.set(false) // reportUndocumented.set(false) // documentedVisibilities.set( // setOf( // VisibilityModifier.Public, // VisibilityModifier.Private, // VisibilityModifier.Protected, // VisibilityModifier.Internal, // VisibilityModifier.Package // )) } } } } } // 新增删除Tree和Package标签的Gradle任务 tasks.register("removeUnwantedTags") { group = "documentation" description = "删除HTML文档中所有的Tree和Package标签及相关链接" // 定义HTML文件所在目录(根据实际dokka输出目录调整) val docOutputDir = layout.buildDirectory.dir("dokka/javadoc") inputs.dir(docOutputDir) outputs.dir(docOutputDir) doLast { val docDir = docOutputDir.get().asFile if (!docDir.exists()) { println("文档目录不存在: ${docDir.absolutePath}") return@doLast } // 遍历所有HTML文件 docDir.walk().filter { it.isFile && it.extension == "html" }.forEach { htmlFile -> println("处理文件: ${htmlFile.absolutePath}") // 读取文件内容 var content = htmlFile.readText(Charsets.UTF_8) // 1. 删除导航栏中的Tree标签(匹配标准格式+变体) val treeNavPattern = Regex("""