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

来源:互联网 发布:淘宝首页轮播代码 编辑:程序博客网 时间:2024/06/05 08:05

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


系列文章:
bintray-release使用指南(一)
bintray-release配置publish闭包(二)
bintray-release自定义Publication(三)
bintray-release定义额外产品(四)
bintray-release添加对Maven Central同步的支持(五)

作为依赖关系最受欢迎的存储库,jCenter已经超越了Maven Central,该插件不能全面支持bintray和Maven Central之间的开箱即用(您可以阅读完整的讨论)。

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

除了上述步骤之外,请执行以下操作:
- 打开你的项目的“build.gradle”。
- 定义一些这样的扩展属性,并用您自己的值替换占位符。 它们将被用于生成不会被Maven Central拒绝的pom文件的钩子。 如果您调用./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')}}

随意在其他地方定义这些属性。 他们往往具有应用普遍的性质,你可能已经有一个你定义属性的地方。

  • 添加钩子首先将会删除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")            }        }    }}
原创粉丝点击