【问题标题】:Gradle publishing error with android library pluginandroid库插件的Gradle发布错误
【发布时间】:2016-06-14 23:30:59
【问题描述】:

尝试将 android 库发布到 init.gradle 中定义的本地存储库时出现以下错误。

> Cannot configure the 'publishing' extension after it has been accessed.

我在 ~/.gradle/init.gradle 中定义了我的 maven 存储库,以便它们可以在我的所有项目中使用。

allprojects {

    apply plugin: 'maven-publish'

    repositories.ext.mavenMyRepo = {
        repositories.maven { 
            name "MyRepoSnapshot"
            url "file:/home/me/mvn/snapshot"
        }
        repositories.maven { 
            name "MyRepoRelease"
            url "file:/home/me/mvn/release"
        }
    }

    publishing {
        publications {
            mavenMyRepo(MavenPublication) {
                repositories.maven {
                    if(project.version.endsWith('-SNAPSHOT')) {
                        url "file:/home/me/mvn/snapshot"
                    } 
                    else {
                        url "file:/home/me/mvn/release"
                    }
                }
            }
        }
    }
 }

在我的项目 build.gradle 中:

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

archivesBaseName = 'my-android-lib'
version = '1.0.0-SNAPSHOT'

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

android {
    compileSdkVersion 20
    buildToolsVersion "23.0.2"
}

task jar(type: Jar, dependsOn: 'compileReleaseSources') {
    from 'build/intermediates/classes/release'
    manifest {
        attributes("Implementation-Version": version)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.5'
}

task sourcesJar(type: Jar) {
    classifier "sources"
    from 'src/main/java'
}

publishing {
    publications {
        mavenMyRepo(MavenPublication) {
            pom.withXml {
                asNode().appendNode('description', 'Android Library')
            }
            groupId 'my.group'
            artifactId archivesBaseName
            // from components.java
            artifact sourcesJar
        }
    }
}

当我对其他仅“java”的项目执行此操作时,一切正常。我已阅读其他问题,这些问题表明问题可能与应用插件的顺序有关,但这似乎不起作用。

有谁知道为什么android插件会导致这个问题?

附:我在命令行上使用 gradle (v2.6),而不是 Android Studio。

更新:

我试过这个解决方案:https://stackoverflow.com/a/32746509/1329791

错误消失了,但现在 init 脚本中未指定 project.version,因此使用了错误的存储库。

【问题讨论】:

    标签: java android gradle


    【解决方案1】:

    这现在适用于 2.1.2 版的 android 插件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多