gradle7.0 打包插件发布到本地maven仓库

        网上找了好久,终于找到两种可以满足要求的方式。

方式1、发布插件到本地指定目录

        参考文章链接gradle 7.x 如何开发一个自定义 Plugin - 掘金

 gradle 7.x 如何开发一个自定义 Plugin

新建一个 Groovy Model

as 没法直接创建 groovy model,可以先创建一个 java model,然后修改 gradle 配置

plugins {
    id 'groovy'
    id 'maven-publish'
}

dependencies {
    implementation gradleApi()
    implementation localGroovy()
    implementation 'com.android.tools.build:gradle:3.5.2'
    implementation 'org.javassist:javassist:3.28.0-GA'
}

这一步可能会报错:

Build was configured to prefer settings repositories over project repositories but repository 'Gradle Libs' was added by unknown code

可以在 settings.gradle 中,把这句话注释掉

创建 Plugin

首先创建固定目录文件:resources/META-INF/gradle-plugins/package.properties

文件中写入如下内容:

implementation-class=xyz.mlya.javaassist.ModifyPlugin

这个是作为我们的入口文件。

发布 Plugin 到本地 maven 仓库

publishing {
    publications {
        maven(MavenPublication) {
            groupId = 'xyz.mlya.javaassist'
            artifactId = 'modify'
            version = '1.0.0'

            from components.java
        }
    }

    repositories {
        maven {
            url = "../repo"
        }
    }
}

        这个时候,我们运行 gradle 命令 ./gradlew publish  (注意是publish task任务,而不是其他任务,比如publishToMavenLocal task任务)

        执行成功后,我们会看到,在我们的项目目录下,会创建 repo 目录,里面有我们的包名的路径和里面的 jar 文件。

在项目中引入这个 Plugin

在 settings.gradle 中,添加本地仓库,注意,是往 PluginManagement 中添加仓库

pluginManagement {
    repositories {
        maven { url('./repo') }
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

在项目中引入 Plugin,还需要在项目的 build.gradle 中引入:

buildscript {
    dependencies {
        classpath 'xyz.mlya.javaassist:modify:1.0.0'
    }
}

这里我还是使用 buildscript 的方式引入(因为对 gradle 不熟悉),起码能 work 起来,有什么好的建议可以提给我,感激不尽。

然后,在 app model 里引入 plugin

plugins {
    id 'com.android.application'
    id 'xyz.mlya.javaassist'
}
复制代码

再 sync 一下,我们会看到控制台输出了我们的那句话,说明我们的插件引入成功了。

方式2:发布插件到本地maven仓库

        这个之前自己要写过,参考链接为:开发Gradle插件并上传至本地maven库_小刘学安卓的博客-CSDN博客

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值