• android 上传plugin插件到jcenter


    这里有关jcenter的注册以及创建jcenter仓库,在我的另一篇上传jcenter已经写过。

    第一步:用Android Studio建立一个简单的插件

    1、新建一个项目pluginlibrary(名字随意),再新建一个module(library),类型选择Android Library

    2、将src/main下的目录全部删除,创建一个新的目录groovy,接着根据module的包名创建目录,比如我的module包名是com.plugin.gradle.library,

    那么就按照这个目录创建。之后在该目录下创建一个以groovy后缀名的文件TestPlugin.groovy,作用是打印出一行字,目的是检验插件是否能运行。

    大家直接copy就好,因为代码没有自动提示,需要手写。
    package com.plugin.gradle.library
    
    import org.gradle.api.Plugin
    import org.gradle.api.Project
    
    
    class TestPlugin implements Plugin<Project> {
        @Override
        void apply(Project project) {
            println "mack success haha"
        }
    }

    项目结构和代码如下:

    3、在main目录下创建resources目录,在这个目录下创建META-INF/gradle-plugins, 在目录里面我们再创建名为com.test.plugin.properties的文件,

    文件名library就是以后给别人引用的插件名(插件名相当于 其他项目引入的builde apply plugin: 'com.test.plugin')。

    在该文件添加代码:implementation-class=com.plugin.gradle.library.TestPlugin

    第二步:配置gradle(重要)

    1、先配置好主项目的build.gradle,这里需要引入两个依赖

       classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
    
       classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
    

     2、配置module:library里面的gradle,因为我们最终上传的是这个插件,所以重要的信息都包含在里面。

    apply plugin:'groovy'
    
    apply plugin:'maven'
    
    apply plugin:'com.jfrog.bintray'
    
    apply plugin:'maven-publish'
    
    //另外一个上传包到 jcenter 的插件
    
    //apply plugin: 'com.novoda.bintray-release'//添加
    
    dependencies {
    
        implementation gradleApi()
    
        implementation localGroovy()
    
        implementation 'com.android.tools.build:gradle:3.0.0'
    
        implementation "org.aspectj:aspectjtools:1.8.9"
    
        implementation "org.aspectj:aspectjrt:1.8.9"
    
        implementation 'com.android.tools.build:transform-api:1.5.0'
    
    }
    
    repositories {
    
        mavenCentral()
    
    }
    
    //打包到本地
    
    //group = 'com.huodonghezi.aspectj.Plugin'
    
    //version = '1.1.0'
    
    //uploadArchives {
    
    //    repositories {
    
    //        mavenDeployer {
    
    //            repository(url: uri('../repo'))
    
    //        }
    
    //    }
    
    //}
    
    group ='com.test.plugin.android'  // 组名 jcenter中的仓库路径
    
    version ='1.0.0' // 版本
    
    //// 应用插件
    
    apply from:'bintray.gradle'

     2、配置module:里面创建上传jcenter的bintray.gradle,所有重要的信息都包含在里面。

    
    
    applyplugin: 'com.jfrog.bintray'

    applyplugin: 'maven-publish'

    def baseUrl = '项目git路径'

    def siteUrl = baseUrl

    def gitUrl = "${baseUrl}/ hzAspectJ"

    def issueUrl = "${gitUrl}/issues"

    install {

    repositories {

    mavenInstaller {

    // This generates POM.xml with proper paramters

    pom.project {

    //添加项目描述

    name 'Gradle Plugin for Android'

    url siteUrl

    //设置开源证书信息

    licenses {

    license {

    name 'The Apache Software License, Version 2.0'

    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'

    }

    }

    //添加开发者信息

    developers {

    developer {

    name 'jcenter 的用户名'

    email ' jcenter 登录邮箱'

    }

    }

    scm {

    connection gitUrl

    developerConnection gitUrl

    url siteUrl

    }

    }

    }

    }

    }

    //配置上传Bintray相关信息

    bintray {

    user = '用户名'

    key = ' jcenter 的个人 api key'

    configurations = ['archives']

    pkg {

    repo = 'welljan' // 上传到中央仓库的名称

    name = 'hzAspectJ' // 上传到jcenter 的项目名称

    desc = 'test aop' // 项目描述

    websiteUrl = siteUrl

    issueTrackerUrl = issueUrl

    vcsUrl = gitUrl

    labels = ['gradle', 'plugin']

    licenses = ['Apache-2.0']

    publish = true

    }

    }
    
    

    第三步:上传插件

    我们到底怎么上传这个插件呢,其实有两种方法,但本质上是一样的,可以使用工具,或者使用命令行。
    1、使用gradle快捷工具

     第一步,在右上角侧边栏找到Gradle,点击打开,在目录中展开pluginlibrary,双击install运行

     第二步如图展开publishing,双击bintrayUpload运行。

    打开Messages,当你看到BUILD SUCCESSFUL,就代表已经上传成功啦。

  • 相关阅读:
    codewars sum of pairs
    codewars贪吃蛇算法题目
    记录一道有意思的js题目
    JS判断变量类型
    mock之初体验
    three.js尝试(二)模拟游戏开发:3D人物在地图上行走
    three.js尝试(一)模拟演唱会效果
    Vue中父组件使用子组件的emit事件,获取emit事件传出的值并添加父组件额外的参数进行操作
    网易前端工程师课程中,布局解决方案
    js飘窗
  • 原文地址:https://www.cnblogs.com/lixiangyang521/p/13451508.html
Copyright © 2020-2023  润新知