基于新版本Gradle上传jitpack开源项目

article/2025/9/20 23:21:41

因为新版本的gradle编译开源库的方法已经变了,所以这边记录下 

1.第一步创建一个空项目

 2.因为这样会创建出来一个app项目,我们上传git是不需要这个的,所以我们在

项目中setting.gradle目录下注释掉 app模块,然后就可以手动删除掉这个app模块了。

pluginManagement {repositories {gradlePluginPortal()google()mavenCentral()}
}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()}
}
rootProject.name = "JitpackTest"
//include ':app'  //注释掉module app
include ':mylibrary'

删除之后如下所示没有了app模块:

3.在mylibrary的build.gradle文件中添加 Maven Publish插件

 Maven Publish官网的使用地址:

使用 Maven Publish 插件  |  Android 开发者  |  Android Developers

plugins {id 'com.android.library'id 'maven-publish'   //添加maven publish插件
}

然后添加插件编译的Task:

afterEvaluate {publishing {publications {release(MavenPublication) {from components.releasegroupId = 'com.example.mylibrary' //groupId 随便取,jitpack不会使用artifactId = 'test'  //test随便取,jitpack不会使用version = '1.0.1' //随便取,jitpack不会使用}}}
}

完整的buidle.gradle代码如下所示:

plugins {id 'com.android.library'id 'maven-publish'
}android {compileSdk 32defaultConfig {minSdk 21targetSdk 32testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_11targetCompatibility JavaVersion.VERSION_11}
}afterEvaluate {publishing {publications {release(MavenPublication) {from components.releasegroupId = 'com.example.mylibrary' //groupId 随便取artifactId = 'test'  //test随便取version = '1.0.1'}}}
}dependencies {implementation 'androidx.appcompat:appcompat:1.3.0'implementation 'com.google.android.material:material:1.4.0'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

4.本地编译:因为我们得用gradlew编译,所以得切换到这个路径

 在控制台输入如下命令:

 ./gradlew publishToMavenLocal   (./ 当前路径下的...)

 会显示如下图所以,说明本地 编译成功了

 5.把项目上传到git仓库或者码云

切换到项目目录下输入:

git init 

 如果本地已经存在 .git文件,说明你已经git初始化了

 有些人的电脑可能会存在看不到这个文件,那是因为你文件管理中设置了 “隐藏项目”,打开即可:

 把 “隐藏的项目” 勾上即可

接下来关联git上的项目:

git remote add origin (git 仓库的地址) 

  将本地的项目推送到git端

git push -u origin master  

关于线上创建仓库,这里提醒一点:最好不要勾选下面标记的,不然会默认给你创建一个main分支,这样会和本地默认的master分支冲突

5. git线上打一个Release包:点击Releases

点击Draft a new release

 

 选择打包Release是基于那个tag的

 

 然后点击 Publise  Release就可以

6.前往 jitpack 上编译

JitPack | Publish JVM and Android libraries

将项目的地址:

 copy到如下地址,点击Look up就编译了

这个时候会显示编译失败:

 点击红色的log日志查看报错内容:

 意思是gradle插件需要java 11版本:

解决如上问题:

在mylibrary的build.gradle文件中添加如下:

compileOptions {sourceCompatibility JavaVersion.VERSION_11targetCompatibility JavaVersion.VERSION_11
}

 然后在整个项目的根目录下创建:jitpack.yml 文件,里面配置 java11,添加如下内容:

before_install:- sdk install java 11.0.10-open- sdk use java 11.0.10-openjdk:- openjdk11

6.再 提交到git 发布一个release版本

7.然后在jitpack上重新编译下:发现log日志编程绿色了,说明编译成功了,点击Get it

 会教我们如何去使用:

 到此就结束了本地库上传到jitpack仓库了。

使用:

 上图是基于老版本的Gradle使用的,新版本如下添加jitpack地址:

 然后再使用的地方依赖就可以了:

implementation 'com.github.awoyixiasiquanjia:mylibrary:1.0.1'

查看是否依赖上:如下图所示即成功依赖上了

 我把项目贴出来,有需要的朋友可以对比下:

GitHub - awoyixiasiquanjia/mylibrary


http://chatgpt.dhexx.cn/article/IXIH02NO.shtml

相关文章

Android 上传代码到gitee并发布到Jitpack生成远程库

# 一创建项目 查看toollibrary主要配置 这里附上关键代码 plugins {id com.android.libraryid org.jetbrains.kotlin.androidid maven-publish } task generateSourcesJar(type: Jar) {from android.sourceSets.main.java.srcDirsclassifier sources } afterEvaluate {publish…

jitpack 介绍

2019独角兽企业重金招聘Python工程师标准>>> jitpack 一个有意思的工具, 可以从github、码云根据commitId、tag 生成maven依赖,减少代码下载、打包等步骤。工具地址 https://jitpack.io/ 转载于:https://my.oschina.net/u/2000646/blog/2966…

你会在 JitPack 上创建依赖库吗?

为什么写 看见标题有人可能会轻蔑一笑,多简单个事?还至于专门写一篇文章吗? 我之前也以为挺简单的,因为之前自己也上传过,但是前几天的经历告诉我没有那么简单,特别是现在安卓 Gradle 升级到 7.0 之后。。…

Jitpack使用指南:maven-publish如虎,jitpack如翼 【安卓Java组件化模块化】【更多gradle技巧】

上文总结了三种多模块开发的方法。 第一种:在setting.gradle中定义子模块然后 api Project(:...),直接引用 。第二种,使用 maven-publish 部署至本地仓库第三种,使用 jitpack.io 等部署至远程服务器 我的第一个开源项目就依次用…

使用jitpack发布你自己的依赖库

如何优雅的让其他开发者使用我们的库。 我们经常通过gradle导入第三方库,那么我们自己的库如何提供给其他开发者使用?下边我们分别介绍使用jitpack、mavenCentral(以前叫JCenter)来发布我们的库。 在使用前,我们先了解…

JitPack的使用

JitPack的使用 1 JitPack简介2 JitPack使用1 上传代码到仓库,并创建一个release2 进入JitPack官网首页,输入仓库地址,点击Look up3 点击Get it按钮,下面生成maven仓库和依赖4 在项目的pom文件中添加上面两个依赖 3 总结 JitPack官网 官网文档 参考资料: https://blog.csdn.n…

一文详解jitpack多渠道maven库发布

先说一下,为什么会有这篇文章? 最初接触 JitPack 时,发现网络上大量涉及JitPack的教程不可用。通过两天的研究才搞明白: 1.不同的gradle版本,gradle api使用方式 与 JitPack配置方式均有所差异:使用JitPack…

【红黑树】二叉树的改进---红黑树|平衡二叉树和红黑树的区别

目录 二叉树的改进---红黑树 红黑树和AVL树(平衡二叉树)区别 确实是AVL(平衡二叉树)更严格(左右子树树高不超过1), 红黑树只保证最长路径不超过最短路径的2倍 二叉树的改进---红黑树 这个是一个 小灰程序…

红黑树是怎么实现的,看这篇真的就够了!

大家好,我是鸭血粉丝,又是一个元气满满的周一,今天带大家一文搞懂红黑树,友情提示:本文较长,建议先收藏再观看。 红黑树由来:在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树&…

红黑树解读与Java实现

红黑树解读与Java实现 概要 目录 红黑树的介绍红黑树的应用红黑树的时间复杂度和相关证明红黑树的基本操作,左右旋红黑树的基本操作,添加与调整红黑树的基本操作,删除与调整 一、红黑树的介绍 什么是红黑树? R-B Tree&#…

JDK14的新特性:JFR,JMC和JFR事件流

文章目录 简介JFRJMC创建JFR分析JFR JFR事件JFR事件流总结 简介 Java Flight Recorder(JFR)是JVM的诊断和性能分析工具。它可以收集有关JVM以及在其上运行的Java应用程序的数据。JFR是集成到JVM中的,所以JFR对JVM的性能影响非常小&#xff0…

Cocos2d-x利用jni调用java层代码

jni的意思是java本地调用,通过jni可以实现java层代码和其他语言写得代码进行交互。在cocos2d-x中,如果想要在c层调用java层的代码,就是通过jni技术。通过调用java层的代码,我们就可以在Android平台下实现一些引擎没有提供给我们的…

红黑树,学习红黑树,jdk1.8之后的新知识

红黑二叉树 1.引言 HashMap的基本结构是数组,链表和红黑树。以数组为基本形态,数组中的元素先以链表形式储存,当链表的长度超过8时(包含数组上的那个链表头)就会将链表转换为红黑树,以加快修改和查询效率…

JavaScript 红黑树

一、树的平衡性 为了能以较快的时间O(logN)来操作一棵树,我们需要保证树总是平衡的: 至少大部分是平衡的,那么时间复杂度也是接近O(logN)的也就是说树中每个节点左边的子孙节点的个数应该尽可能的等于右边的子孙节点的个数.常见的平衡树有哪些呢?AVL树: AVL树是最早的一种平衡…

最详细的对红黑树性质理解

红黑树的性质: 在了解红黑树之前,建议先去了解一下什么是二叉搜索树。 因为红黑树属于二叉搜索树特殊的分支,所以建议先去了解一下二叉搜索树。 二叉搜索树:https://blog.csdn.net/Falling_stars_/article/details/115536511 红…

JDK1.8之后,HashMap转变红黑树

当链表长度大于8并且数组长度大于64时,才会转换为红黑树 根据源码注释: 1.TreeNodes占用空间是普通Nodes的两倍。 只有当bin(bin就是bucket-桶,即HashMap中hashCode值一样的元素保存的地方)包含足够多的节点时才会转成…

jdk1.8的HashMap中的红黑树插入,为什么是红黑树而不是AVL树

jdk1.8HashMap的源码 树节点 static final class TreeNode<K,V> extends LinkedHashMap.Entry<K,V> {TreeNode<K,V> parent; // red-black tree linksTreeNode<K,V> left;TreeNode<K,V> right;TreeNode<K,V> prev; // needed to unli…

浅谈红黑树

这篇文章的删除操作参考这篇博客博客地址 聊红黑树之前我想先来谈谈B树&#xff08;多路平衡查找树&#xff09;&#xff0c;为什么来聊这个东西呢&#xff0c;其实红黑树就是一个B树。了解B树后对红黑树的理解会比较有帮助。 首先是2、3、4节点。 红黑树中单个黑节点对应B树中…

红黑树的理解与代码实现

红黑树 我们知道对于二叉搜索树而言&#xff0c;无法保证树的平衡性&#xff0c;从而使得进行操作的时候时间复杂度在O(logn)与O(n)之间。这样是不稳定的。而2-3树则借助于3-结点和临时的4-结点&#xff0c;通过分解&#xff0c;解决了平衡问题。例如对于插入&#xff0c;在最终…

图解TreeMap的红黑树平衡操作fixAfterInsertion(),接着手撕红黑树添加节点

一、前言 啥也不想说&#xff0c;就卷、卷技术&#xff1b;手撕红黑树搞起。 1、红黑树简介 红黑树就是一种平衡的二叉查找树&#xff0c;其有五个特点&#xff1a; 1.每个节点要么是红⾊&#xff0c;要么是⿊⾊&#xff1b; 2. 根节点⼀定是⿊⾊的&#xff1b; 3. 每个叶⼦…