从 Gradle 中的 uploadArchives 任务中移除 BuildType 调试

Remove BuildType debug from uploadArchives task in Gradle

我有一个 build.gradle 文件要构建并上传到私有 Maven 存储库 Android 库 (.aar) 脚本工作正常,但问题是,它将我的两个 buildType 上传到maven repo(调试和发布版本),我只想上传发布版本。

这是我的脚本:

afterEvaluate { project ->
    // Generate Jar of the Javadoc
    task androidJavadocsJar(type: Jar, dependsOn: generateReleaseJavadoc) {
        classifier = 'javadoc'
        from generateReleaseJavadoc.destinationDir
    }

    // Include Javadoc Jar file in the Maven repository
    artifacts {
        archives androidJavadocsJar
    }

    // Task to upload SDK in Maven private repository
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: "***") {
                    authentication(userName: '***', password: '***')
                }
                snapshotRepository(url: "***") {
                    authentication(userName: '***', password: '***')
                }
                pom.project {
                    artifactId '***'
                    name '***'
                    packaging 'aar'
                }
            }
        }
    }
}

我知道可以通过在 android {} 部分编写此 defaultPublishConfig "release" 来实现,但是当我这样做时,我无法在调试版本中使用我的库进行调试。除了根据我想做什么来评论和取消评论之外,我没有找到任何停止上传调试包的解决方法...

我按照以下方式进行,我只在打包的 AAR 中获得发布工件。

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

uploadArchives {
    configuration = configurations.archives

    repositories {
        mavenDeployer {
            repository(url: 'http://myserver/artifactory/libs-release-local') {
                authentication(userName: artifactoryUsername, password: artifactoryPassword)
            }

            snapshotRepository(url: 'http://myserver/artifactory/libs-snapshot-local') {
                authentication(userName: artifactoryUsername, password: artifactoryPassword)
            }

            pom.project {
                name 'somelibrary'
                description 'some library'

                scm {
                    developerConnection 'repo location'
                }
            }
        }
    }
}

相反,我实际上是在寻找一种方法来发布用于调试和发布的单独工件,但找不到嘿:)

this 可能有助于解决您的问题。基本上它默认使用发布版本。但是,您似乎可以通过以下方式覆盖该行为;

android {
    defaultPublishConfig "flavor1Debug"
}