如果你项目的gradle版本>7.0,在项目中引用maven插件
apply plugin: 'maven'
会报错
Plugin with id 'maven' not found.
因为在In Gradle 7.x官网已经废弃了,
The maven plugin has been removed. You should use the maven-publish plugin instead.
- 那解决方法了?
官方提示使用maven-publish插件替换,如果之前在builder.gradle使用uploadArchives
打包上传maven的
apply plugin: 'groovy'
apply plugin: 'maven'
repositories {
mavenCentral()
}
dependencies {
//xxx
}
uploadArchives{
// 打包成一个jar 引用jar 生成这个三个信息
repositories.mavenDeployer {
//项目名
pom.groupId = 'com.x'
pom.artifactId = 'modify'
pom.version = '1.0.0'
repository(url: uri('../repo'))
}
}
sourceCompatibility = "8"
targetCompatibility = "8"
需要改成
//maven插件在gradel7.0 已删除
apply plugin: 'groovy'
apply plugin: 'maven-publish'
// 或者以下写法
//plugins {
// id 'groovy'
// id 'maven-publish'
//}
dependencies {
//......略写
}
afterEvaluate {
publishing {
// 配置maven-publishing插件的输出物
publications {
maven(MavenPublication) {
groupId = 'com.x'
artifactId = 'modify'
version = '1.0.0'
}
}
repositories {
maven {
url = uri('../repo')
}
}
}
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
为什么maven-publish插件替换maven?
- gradle maven 插件从Gradle1.0开始支持,主要为了兼容原来maven项目迁移,在Gradle 6.2 之后,就完全废弃了。
- gradle maven-publish 插件,从gradle 1.3 之后开始支持,随着gradle的成熟,为了更好的在gradle上支持maven,重新开发对maven支持且功能更加强大。gradle主推只使用Gradle maven-publish插件,在Android Gradle 插件 3.6.0 及更高版本支持 Maven Publish Gradle 插件,可让您将构建工件发布到 Apache Maven 代码库。
具体Gradle maven-publish plugin使用可参考官网文章(需翻墙)
- https://docs.gradle.org/current/userguide/publishing_maven.html
- https://developer.android.com/studio/build/maven-publish-plugin?hl=zh-cn
网友评论