bintray-release添加對Maven Central同步的支持(五)

文章摘要:
1、添加對Maven Central同步配置


系列文章:
bintray-release使用指南(一)
bintray-release配置publish閉包(二)
bintray-release自定義Publication(三)
bintray-release定義額外產(chǎn)品(四)
bintray-release添加對Maven Central同步的支持(五)

作為依賴關系最受歡迎的存儲庫,jCenter已經(jīng)超越了Maven Central,該插件不能全面支持bintray和Maven Central之間的開箱即用(您可以閱讀完整的討論)。

盡管在生成的pom文件中添加缺少的字段是很容易的。

除了上述步驟之外,請執(zhí)行以下操作:

  • 打開你的項目的“build.gradle”。
  • 定義一些這樣的擴展屬性,并用您自己的值替換占位符。 它們將被用于生成不會被Maven Central拒絕的pom文件的鉤子。 如果您調(diào)用./gradlew bintrayUploadIS_UPLOADING將為true。
ext {
    ARTIFACT_ID = 'YOUR_ARTIFACT_ID'
    VERSION_NAME = 'YOUR_VERSION_NAME'
    VERSION_CODE = 1 //your version
    
    DESCRIPTION = 'YOUR_DESCRIPTION'
    
    SITE_URL = 'YOUR_SITE_URL'
    GIT_URL = 'YOUR_GIT_URL'
    GROUP_NAME = 'YOUR_GROUP_NAME'
    COMPILE_SDK = 23
    BUILD_TOOLS = '23.0.1'
    
    MODULE_NAME = 'YOUR_MODULE_NAME'
    
    LICENSE = 'YOUR_LICENSE'
    
    DEVELOPER_ID = 'YOUR_DEVELOPER_ID'
    DEVELOPER_NAME = 'YOUR_NAME'
    DEVELOPER_EMAIL = 'YOUR_EMAIL_ADDRESS'
    
    IS_UPLOADING = project.getGradle().startParameter.taskNames.any{it.contains('bintrayUpload')}
}

隨意在其他地方定義這些屬性。 他們往往具有應用普遍的性質(zhì),你可能已經(jīng)有一個你定義屬性的地方。

  • 添加鉤子首先將會刪除pom文件并重新生成符合Maven Central標準的文件。 如果要將hock應用于項目中的多個模塊,請確保在if-clause中指定所有模塊。
subprojects {
    group = GROUP_NAME
    version = VERSION

    if (IS_UPLOADING && project.name in [MODULE_NAME]) {
        println project.name
        apply plugin: 'maven'

        gradle.taskGraph.whenReady { taskGraph ->
            taskGraph.getAllTasks().find {
                it.path == ":$project.name:generatePomFileForMavenPublication"
            }.doLast {
                file("build/publications/maven/pom-default.xml").delete()
                println 'Overriding pom-file to make sure we can sync to maven central!'
                pom {
                    //noinspection GroovyAssignabilityCheck
                    project {
                        name "$project.name"
                        artifactId ARTIFACT_ID
                        packaging project.name == 'compiler' ? 'jar' : 'aar'
                        description DESCRIPTION
                        url SITE_URL
                        version VERSION_NAME

                        scm {
                            url GIT_URL
                            connection GIT_URL
                            developerConnection GIT_URL
                        }

                        licenses {
                            license {
                                name LICENSE
                            }
                        }

                        developers {
                            developer {
                                id DEVELOPER_ID
                                name DEVELOPER_NAME
                                email DEVELOPER_EMAIL
                            }
                        }
                    }
                }.writeTo("build/publications/maven/pom-default.xml")
            }
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容