android 创建 plugin

本文详细记录了在Android Studio中创建Android plugin的步骤,包括创建项目、删除默认内容、新建源代码和资源文件、配置plugin属性,以及将plugin发布到本地Maven仓库和JFrog Artifactory的过程。在发布过程中遇到的问题和解决方案也一并分享,最后介绍了如何在项目中引入并使用自定义的plugin。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android studio 创建 Android plugin 小记

1:首先创建一个Android项目

2:创建了一个module,我这边创建的是library,取名叫做plugins,删除了里面所有的内容,只剩下build.gradle,还是就是gitignore和imi文件,

3:新建了src/main下面的文件,最后新建了一个Myplugin文件,刚开始时候Androidstudio识别不出来,最后把studio 关了之后重新开启就好了

4:新建了resources文件夹,里面有个myplugin.properties文件,内容为

implementation-class=com.alog.PluginImpl.MyPlugin,用于识别当前的plugin

groovy中的内容是这样的

只是简单的打印下

写完上面的内容之后,想把它推到本地的maven仓库中,内容是这样的

apply plugin: 'groovy'
apply plugin: 'java'

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

dependencies {
    compile gradleApi()
    compile localGroovy()
}

repositories {
    mavenCentral()
}

version 1.0
group "com.asm"

publishing {
    publications {
        Component(MavenPublication) {
            from components.java
            groupId = group
            artifactId = POM_ARTIFACT_ID
            version = version
        }
    }
}


task buildAndPublishToLocalMaven(type: Copy, dependsOn: ['build', 'publishToMavenLocal']) {
    group = 'asmtest'

    // save artifacts files to artifacts folder
    from configurations.archives.allArtifacts.files
    into "${rootProject.buildDir}/outputs/artifacts/"
//    rename { String fileName ->
//        fileName.replace("release.aar", "${version}.aar")
//    }

    doLast {
        println "* published to maven local: ${project.group}:${project.name}:${project.version}"
    }
}

执行buildAndPublishToLocalMaven任务,这样就能在本地的maven仓库中看到,默认是这个路径.m2的下面

若想要推送到JFrog Artifactory中,我这边是这么写的

def artifactVersion = '1.0.0'//发布的版本

publishing {
    publications {
        mainJava(MavenPublication) {
            groupId = 'com.test'   //填写GroupId
            artifactId  = POM_ARTIFACT_ID
            version = artifactVersion
            from components.java

        }
    }
}

task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

artifactory {
    contextUrl = "http://10.111.24.119:8081/artifactory"//本地仓库地址
    publish {
        repository {
            /**
             repoKey:指定发布到的仓库名称
             */
            //这里判断了当前发布的版本是不是‘快照’版本;
            //其中'libs-snapshot-local' : 'lib-aar'是两个仓库名称
            repoKey = artifactVersion.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'
            username = "admin" // 发布者用户名
            password = "123456" // 发布者密码
            maven = true
        }
        defaults {
            publishArtifacts = true
            //这里的'mainJava'对应publishing任务中的'mainJava',任务名称可自定义
            publications('mainJava')
            publishPom = true //Publish generated POM files to Artifactory (true by default)
            publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default)
        }
    }
    resolve {
        repository {
            repoKey = 'jcenter'
            username = "admin" // 发布者用户名
            password = "123456" // 发布者密码
        }
    }
}

这样子我就能在jfrog中看到我刚才推送的文件了

这边遇到的问题是一直传不上去,报这个错

后来修改了

classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.7.3'这个的版本号,以前是4.1.1的

最后就是怎么使用这个plugin了

首先引入

最后

apply plugin: 'myplugin'就可以了

它的格式是

groupId:artifactId:version

引入后执行一下build,就能看到我们打印的了

 

仅此记录一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值