Gradle 7.0+发布Gradle插件到私有maven仓库笔记
最近用Java写了一个Gradle插件
插件介绍
https://blog.csdn.net/wang382758656/article/details/124236006?spm=1001.2014.3001.5501
然后想在各个项目中使用,发现gradle 7 以后的脚本变化挺大的,折腾了一天,整理出一个完整的脚本,这里做一个笔记供大伙参考。
首先,我的插件是以module方式开发的,然后用nexus(这是一个软件,不是nexus手机,不要懵逼,我用的是nexus-3.38.1-01win64)搭建了私有库,所以所有的配置都在module的build.gradle中配置
配置1.plugins 的配置,新版本是maven-publish以前是maven
plugins {id 'java-gradle-plugin' //Gradle开发插件id 'java' //使用javaid 'maven-publish' //插件发布
}
配置2.gradlePlugin 配置
这个主要是配置插件的信息,这里的版本号,并不代表发布的版本号
gradlePlugin {plugins {//定义的信息不一定和发布信息相同MethodTracer {id = 'com.sand.mt' //定义插件idversion = '1.0.2'implementationClass = 'com.sand.mt.src.plug.MTPlug' //定义插件实现类}}
}
配置3.也是最关键的
1.发布到本地仓库的配置,可以看到这里并不需要配置仓库地址,用户名密码之类
publishing {// 定义发布什么publications {plugin(MavenPublication) {from components.java //使用默认的配置生成jar包groupId = 'com.sand.group' //这三部分组成了:com.example:plugin:1.0.0-SNAPSHOTartifactId = 'mt'version = '1.0.0'}}// 定义发布到哪// publishPluginPublicationToRepoRepository 发布到 plugin/build/repo// publishPluginPublicationToMavenLocal 发布到 ~/.m2/repositoryrepositories {maven {name = 'repo'url = layout.buildDirectory.dir("repo")}}
}
2.远程仓库配置
publishing {publications {maven(MavenPublication) {groupId = "com.sand.group"artifactId = "mt"version = "1.0.2"description "MTPlug is a good apm tool"from components.java}}repositories {maven {allowInsecureProtocol trueurl = '你的maven仓库url'credentials {it.username = "username"it.password = "pwd"}}}
}
引用
如果发布到本地,那么根目录的repositories 中添加mavenLocal()
mavenLocal()
远程仓库配置
maven {allowInsecureProtocol = trueurl '你发布的时候的仓库地址'//如果设置了匿名访问,就不需要配置下面的credentials部分credentials {it.username = "username"it.password = "pwd"}}
完整的module配置文件
plugins {id 'java-gradle-plugin' //Gradle开发插件id 'java' //使用Kotlinid 'maven-publish' //插件发布
}dependencies {implementation "com.android.tools.build:gradle:7.0.3"implementation files('libs/asm-9.2.jar')implementation files('libs/asm-commons-9.2.jar')implementation files('libs/asm-util-9.2.jar')implementation files('libs/commons-io-2.6.jar') //使用com.android.build.api
}//
gradlePlugin {plugins {//定义的信息不一定和发布信息相同MethodTracer {id = 'com.sand.mt' //定义插件idversion = '1.0.2'implementationClass = 'com.sand.mt.src.plug.MTPlug' //定义插件实现类}}
}本地发布
//publishing {
//
// // 定义发布什么
// publications {
// plugin(MavenPublication) {
// from components.java //使用默认的配置生成jar包
// groupId = 'com.sand.group' //这三部分组成了:com.example:plugin:1.0.0-SNAPSHOT
// artifactId = 'mt'
// version = '1.0.0'
// }
// }
// // 定义发布到哪
// // publishPluginPublicationToRepoRepository 发布到 plugin/build/repo
// // publishPluginPublicationToMavenLocal 发布到 ~/.m2/repository
// repositories {
// maven {
// name = 'repo'
// url = layout.buildDirectory.dir("repo")
// }
// }
//}//远程发布, 发布到我自己的私有库
publishing {publications {maven(MavenPublication) {groupId = "com.sand.group"artifactId = "mt"version = "1.0.2"description "MTPlug is a good apm tool"from components.java}}repositories {maven {allowInsecureProtocol trueurl = 'http://161.117.195.45:6677/repository/sand_repo/'credentials {it.username = "username"it.password = "pwd"}}}
}
完整的根目录biuild.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {repositories {//本地依赖的关键代码mavenLocal()maven {allowInsecureProtocol = trueurl 'http://161.117.195.45:6677/repository/sand_repo/'}google()mavenCentral()maven { url 'https://dl.google.com/dl/android/maven2/' }maven { url 'https://www.jitpack.io' }jcenter()maven { url 'https://jcenter.bintray.com' }}dependencies {classpath "com.android.tools.build:gradle:7.0.4"classpath "com.sand.group:mt:1.0.2" //来自自定义仓库}
}allprojects{repositories{
// //本地依赖的关键代码maven {allowInsecureProtocol = trueurl 'http://161.117.195.45:6677/repository/sand_repo/'}jcenter()google()mavenLocal()mavenCentral()maven { url 'https://dl.google.com/dl/android/maven2/' }maven { url 'https://www.jitpack.io' }}}task clean(type: Delete) {delete rootProject.buildDir
}
工程源码
https://github.com/woshiwzy/MTDemo
Gradle 7.0+发布Gradle插件到私有maven仓库笔记相关推荐
- 因财务造假,贾跃亭被罚 2.41 亿元;华为徐直军重申不造成:但将推子品牌汽车;Gradle 7.0 发布|极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- 原美团联合创始人欲打造中国版 OpenAI ;ChatGPT 爆红惊动谷歌退隐创始人布林;Gradle 8.0 发布|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- android 加载系统私有库,Android 搭建私有maven仓库及上传项目
前言 在日常工作及项目迭代过程中,一定有不少同学自己写了一些框架性的东西,或者一些好用的工具,总之就是能复用的代码.然而也有不少同学为了复用这些代码不得不复制粘贴到不同项目中,这样相同的功能出现了多份 ...
- 在内网中使用maven_搭建私有maven仓库并在项目中使用
这是一篇写给女朋友看的教程...前方高能,注意避让~ 1.私有maven仓库的搭建 搭建环境为阿里云ESC服务器,CentOS.确保服务器已经安装Jdk.然后我要手把手教你安装和启动nexus. St ...
- Nexus搭建私有Maven仓库用户角色创建和权限分配
Nexus搭建私有Maven仓库用户角色创建和权限分配 前提:已经搭建好私有仓库,并且可以正常访问,搭建方式可根据官方文档操作 在浏览器中打开控制台,并使用admin账号进行登录 1. 创建Repos ...
- Nexus【环境搭建 01】CentOS 7.5 环境下搭建私有Maven仓库实录(启动问题处理+安装文件 nexus-3.4.0-02-unix.tar.gz 云盘链接)
1. 为什么要搭建私有Maven仓库 废话少说,只说主要原因,我现在参与的项目各个模块都是以微服务形式进行部署的,包括权限验证模块,我之前参与过一个项目,使用的是自己封装的权限验证setter依赖 ...
- 史上最快、最强大的Gradle 5.0发布,新特性全解
Gradle 5.0是有史以来速度最快.最安全.最强大的Gradle版本,这是Gradle官方给出的评价,v5.0 新增的功能主要包括: 在构建缓存和更新检查功能的基础之上,Gradle 5.0又改进 ...
- 使用 Sonatype Nexus 3 搭建 Maven 私服、本地私有 Maven 仓库,Gradle 打包 jar 、aar 后自动上传到 Nexus Maven 仓库配置
1 下载 Nexus 3 https://www.sonatype.com/download-oss-sonatype 官网 (2019年7月18日更新:网站改版了 下载地址:https://down ...
- android发布三方库到远程maven仓库详细教程
前提 为什么突然要使用maven了,jcenter可是google御用三方仓库,难道jcenter不香了吗?没错,jcenter就是不香了.当你升级AndroidStudio版本再次创建项目后发现 ...
最新文章
- java se 7u67_Linux下安装jdk-7u67-linux-x64.rpm
- ABAP:关于文本(Read_text,Save_text)
- java中的循环 while
- 奇小葩讲设备树(5/5)-- Linux设备树详解(五)设备树的使用
- 感谢支持,超预期重印并加码
- 使用Vue2.x高效还原美团外卖项目
- 7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分)
- 【HDOJ】1720 A+B coming
- 面向对面 静态参数 与 组合
- matlab矩阵作分钟平均,提高matlab运行速度和节省空间的心得合集(ZT)
- 黑苹果hackintosh wifi驱动安装
- html生成pdf字体错误,使用wkhtmltopdf时显示为PDF的错误字体
- 微信网页开发(3)--微信网页授权
- 大脑计算机马云,马云对话马斯克:人和机器谁更聪明?两马吵起来了
- Shake Shack新店推出专为狗狗研制的冰激凌;素食“鱼肉”三明治挑战赛百味;植物肉品牌v2登陆中国市场...
- 【电驴傻瓜教程-我为人人,人人为我】
- 侧脸生成正脸概论与精析
- MarkdownPad2 插入数学公式Mathjax
- python+matplotlib绘制南丁格尔玫瑰图
- 慎用Application.DoEvents( )