//repositories {
//    google()
//    mavenCentral()
//    jcenter()
//    maven { url 'http://repo1.maven.org/maven2' }
//}

buildscript {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
    }
}

apply plugin: 'com.android.library'
apply plugin: 'maven'

def muPdfversionCode = 22
def muPdfversionName = '1.2.24.1'

android {
    compileSdkVersion 28

    lintOptions {
        abortOnError false
    }
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 28
        versionCode muPdfversionCode
        versionName muPdfversionName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

configurations {
    deployerJars
}

dependencies {
    deployerJars 'org.apache.maven.wagon:wagon-http:2.2'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

// For Maven Repository submitting : Execute task: UploadArchives. Ex: > gradle uploadArchives
// Define repoUsername, repoPassword and repoUrl on "gradle.properties" file in order to use this task.
uploadArchives {
    repositories.mavenDeployer {
        configuration = configurations.deployerJars
        repository(url: repoUrl) {
            authentication(userName: repoUsername, password: repoPassword)
        }
        pom.version = muPdfversionName
        pom.artifactId = "mupdf-android"
        pom.groupId = "com.viafirma"
    }
}
  • 在 Android 开发中,集成 mupdf-android 的示例做为模块使用,根据上述 build.gradle 配置,在构建项目时,出现如下错误信息
Build file '...\mupdf\build.gradle' line: 20

A problem occurred evaluating project ':mupdf'.
> Plugin with id 'maven' not found.

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':mupdf'.
	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133)
	at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:79)
	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:136)
	at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
	...
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'maven' not found.
	at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:144)
	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:167)
	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:43)
	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:98)
	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:190)
	...
# 核心错误信息

Plugin with id 'maven' not found.
问题原因
  • 在较新版本的 Gradle 7.0+ 中,maven 插件已经被废弃并移除,取而代之的是 maven-publish 插件
处理策略
  • 替换 maven 插件为 maven-publish 插件
// 原来是这样的

apply plugin: 'maven'
// 修改成这样

apply plugin: 'maven-publish'
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐