中国电子系统建设三公司网站,财务管理做的好的门户网站,福田附近网站建设,工商登记网站在 SDK 开发过程中#xff0c;使用 Gradle 构建和发布 SDK 是常见的任务。在将 SDK 发布为 AAR 或 JAR 包时#xff0c;你可能会使用 apply plugin: maven 来发布到本地或远程的 Maven 仓库。但是#xff0c;随着 Gradle 版本的更新#xff0c;特别是从 Gradle 7 版本开始使用 Gradle 构建和发布 SDK 是常见的任务。在将 SDK 发布为 AAR 或 JAR 包时你可能会使用 apply plugin: maven 来发布到本地或远程的 Maven 仓库。但是随着 Gradle 版本的更新特别是从 Gradle 7 版本开始原来的 maven 插件apply plugin: maven已经被弃用导致编译时出现如下错误
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id maven not found.一、问题背景
Gradle 在不断升级其插件和功能的管理也发生了很多变化。maven 插件曾是 Gradle 中发布 SDK 和库的标准插件通常用于将 SDK 发布到本地或远程 Maven 仓库。SDK 开发人员通常会使用 apply plugin: maven 来启用这个插件然后配置发布任务。
但是Gradle 7 版本及以上版本开始弃用了 maven 插件改用了 maven-publish 插件。使用 Gradle 7 或更高版本时如果继续使用 apply plugin: maven就会遇到上面的错误导致构建无法通过。 二、问题分析
Gradle 的 maven 插件与 maven-publish 插件的区别在于
maven 插件较早的 Gradle 版本6.x 及以前用于将构建的工件发布到 Maven 仓库。apply plugin: maven 被广泛应用于 Java 项目中但自 Gradle 7 以后Gradle 团队建议使用更强大和灵活的 maven-publish 插件。maven-publish 插件替代了老旧的 maven 插件提供了更多的配置选项和更好的功能支持适用于 Gradle 7 及以上版本。
所以问题的根本原因是maven 插件已不再支持必须使用 maven-publish 插件替代。 三、解决方法
为了解决 Plugin with id maven not found 错误应该将 apply plugin: maven 改为 apply plugin: maven-publish并调整相关的发布配置。
1. 在 build.gradle 文件中应用 maven-publish 插件
plugins {id java // 确保应用了 Java 插件id maven-publish // 使用 Maven 发布插件
}2. 配置 maven-publish 插件进行发布
使用 maven-publish 插件时发布的配置项会放在 publishing 块中。你可以将生成的 JAR 或 AAR 文件发布到本地或远程的 Maven 仓库。
publishing {publications {mavenJava(MavenPublication) {from components.java // 发布 Java 组件groupId com.example.sdkartifactId my-sdkversion 1.0.0}}repositories {maven {// 本地存放目录可根据需要修改def mavenDirPath file(D:/aar)url uri(file://${mavenDirPath.absolutePath})}}
}3. 手动指定构建输出
如果你不使用 java 插件或者需要手动指定构建产物例如 JAR 或 AAR 文件可以显式定义发布的文件路径
publishing {publications {mavenJava(MavenPublication) {artifact file(build/libs/my-sdk.jar) // 手动指定 JAR 文件groupId com.example.sdkartifactId my-sdkversion 1.0.0}}repositories {maven {def mavenDirPath file(D:/aar)url uri(file://${mavenDirPath.absolutePath})}}
}版权所有XuanRan 未经书面授权禁止转载