Skip to content

yimeidevteam/BintrayUploadGradlePlugin

 
 

Repository files navigation

BintrayUploadGradlePlugin

Android开发者经常发布自己的Android库到bintray,通常需要使用两个gradle插件:

这两个插件还要配合上好几个task,用于jar包的生成,POM文件的配置等,非常繁琐。

实际上,我们一般的开发者也就是关心几个小点,其他自动生成即可,所以,为了简化这两个插件的使用,我在他们两个的基础上进行了包装。大大简化了他们的使用。

本插件的版本 gradle android-gradle-plugin
1.0.0 <=5.0 <=3.3.2
1.0.8 >5.0 <=3.3.2
1.0.14 >5.0 >=3.2.0

1、在Android库工程中使用方法

1、在settings.gradle.kts中配置Gradle Plugin Portal的镜像(非必须,只是为了加快下载速度):

pluginManagement {
    repositories {
        //https://maven.aliyun.com/mvn/view
        maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
    }
}

2、在项目根目录中的build.gradle.kts中配置Android Gradle Plugin

buildscript {
    repositories {
        google()
    }
    dependencies {
        //https://developer.android.google.cn/studio/releases/gradle-plugin.html
        classpath("com.android.tools.build:gradle:3.5.0")
    }
}

3、在库模块build.gradle.kts中应用插件:

//plugins块中加载的插件都托管在Gradle PLugin Portal中,或者已经在root build.gradle.kts中的classpath中配置好了
plugins {
    id("com.android.library")
    
    //https://github.com/leleliu008/BintrayUploadGradlePlugin
    //https://plugins.gradle.org/plugin/com.fpliu.bintray
    id("com.fpliu.bintray").version("1.0.14")

    //用于构建jar和pom
    //https://github.com/dcendents/android-maven-gradle-plugin
    id("com.github.dcendents.android-maven").version("2.0")
        
    //用于上传到jCenter中
    //https://github.com/bintray/gradle-bintray-plugin
    id("com.jfrog.bintray").version("1.7.3")
}

// 这里是groupId,必须填写,一般填你唯一的包名
group = "com.fpliu"

//这个是版本号,必须填写
version = "1.0.0"

val rootProjectName = rootProject.name

bintrayUploadExtension {
    archivesBaseName = rootProjectName

    developerName = "leleliu008"
    developerEmail = "leleliu008@gamil.com"

    projectSiteUrl = "https://github.com/$developerName/$rootProjectName"
    projectGitUrl = "https://github.com/$developerName/$rootProjectName"

    bintrayOrganizationName = "fpliu"
    bintrayRepositoryName = "newton"
}

bintray

4、在$HOME/.bintray.properties中设置Bintray的用户和apiKey

bintray.apikey=your bintray apiKey
bintray.user=your bintray user

这里这两个配置没有与其他配置放在一起,而是单独放到用户Home目录下,目的是防止不小心提交到GitHub等公共平台上。

2、基于JVM的语言的工程使用方法

1、在settings.gradle.kts中配置Gradle Plugin Portal的镜像(非必须,只是为了加快下载速度):

pluginManagement {
    repositories {
        //https://maven.aliyun.com/mvn/view
        maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
    }
}

2、在库模块中的build.gradle.kts中应用插件:

//plugins块中加载的插件都托管在Gradle PLugin Portal中
plugins {
    java
    maven
    
    //https://github.com/leleliu008/BintrayUploadGradlePlugin
    //https://plugins.gradle.org/plugin/com.fpliu.bintray
    id("com.fpliu.bintray").version("1.0.14")

    //用于上传到jCenter中
    //https://github.com/bintray/gradle-bintray-plugin
    id("com.jfrog.bintray").version("1.7.3")
}

// 这里是groupId,必须填写,一般填你唯一的包名
group = "com.fpliu"

//这个是版本号,必须填写
version = "1.0.0"

val rootProjectName = rootProject.name

bintrayUploadExtension {
    archivesBaseName = rootProjectName

    developerName = "leleliu008"
    developerEmail = "leleliu008@gamil.com"

    projectSiteUrl = "https://github.com/$developerName/$rootProjectName"
    projectGitUrl = "https://github.com/$developerName/$rootProjectName"

    bintrayOrganizationName = "fpliu"
    bintrayRepositoryName = "newton"
}

bintray

3、在$HOME/.bintray.properties中设置Bintray的用户和apiKey

bintray.apikey=your bintray apiKey
bintray.user=your bintray user

这里这两个配置没有与其他配置放在一起,而是单独放到用户Home目录下,目的是防止不小心提交到GitHub等公共平台上。

3、gradle任务

./gradlew :library:install

执行此命令后在build目录下生成如下内容:

build
├── libs
│   ├── ${rootProjectName}-${version}-javadoc.jar
│   └── ${rootProjectName}-${version}-sources.jar
├── outputs
│   └── aar
│       └── ${rootProjectName}-${version}.aar
├── poms
│   └── pom-default.xml
└── ....

用此命令验证生成的内容是否符合您的需要。

./gradlew :library:bintrayUpload

这个命令还可以简化成./gradlew :library:bU,这就是上传到bintray的命令。当然,前提是您已经有了他的账户和仓库。

注意

上面两个任务前面都加了:library,这是因为一般的工程都会包含至少两个子模块,一个一般是app或者是sample,另一个一般是library。从字面意思也可以知道,library模块就是编写我们要发布的库的,而app或者是sample是用来编写示例代码的。

您的工程如果是单模块的,那么省略:library即可。

4、使用示例

About

上传到jcenter的gradle插件,使用简单

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%