Gradle 7.0+发布Gradle插件到私有maven仓库笔记
生活随笔
收集整理的這篇文章主要介紹了
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仓库笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果手机悬浮窗怎么打开_悬浮窗搜题神器_
- 下一篇: UG模具设计部分