gradle7.0.2如何发布jitpack开源项目
Posted 我想月薪过万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle7.0.2如何发布jitpack开源项目相关的知识,希望对你有一定的参考价值。
前言
gradle 可以说发展十分迅速,一下子就飙升 7.0.2 了。
当你想用 github + jitpack 发布自己的开源项目的时候,网上找的教程都是 基于gradle 3./4.版本的,里面还说道要依赖 android-maven-gradle-plugin 插件,殊不知这个插件已经被废弃了。下面,我就一步步教大家如何从0开始发布自己的 jitpack 开源项目。
说明:由于国内 github 网站不稳定,时不时访问不了,下面的案例我就以 gitee 来讲解,因为github 和 gitee 操作可以说没什么两样。
操作步骤
第一步:新建一个空的 android 项目
创建好之后项目目录结构如下所示:
第二步:创建 Android library
做到这一步:希望大家能明白,我们新建的项目中那个 app 其实一点用都没有,不用关心。我们的精力应该放在 我们新建的那个 Android Library 上。
第三步:编写库类
我们这个案例的作用主要是演示,所以我们写一个简单的库类 =》 弹出吐司。
package com.wust.toastlib;
import android.content.Context;
import android.widget.Toast;
/**
* ClassName: yqTaostUtils <br/>
* Description: <br/>
* date: 2021/11/28 10:54<br/>
*
* @author yiqi<br />
* @QQ 1820762465
* @微信 yiqiideallife
* @技术交流QQ群 928023749
*/
public class yqTaostUtils
private static Toast toast;
public static void showToast(Context context)
if (toast == null)
toast = Toast.makeText(context, "我来自jitpack", Toast.LENGTH_LONG);
toast.show();
到了这一步,我们的库就写好了,我们在本地测试一下是否能编译成。
第四步:本地编译
编译方法官方文档Android - JitPack.iohttps://jitpack.io/docs/ANDROID/
- 唤起 terminal
注意路径,因为我们要使用 gradlew 来实现编译。
- 输入 编译命令
gradlew publishToMavenLocal
这一步会出现各种各样的 错误,我们依依来解决
错误一: Task 'publishToMavenLocal' not found in root project 'jitPackDemo'
解决方法:
在 \\ToastLib\\build.gradle 中加 task 即可
afterEvaluate
publishing
publications
release(MavenPublication)
from components.release
groupId = 'com.wustyq.ToastLib' //groupId 随便取
artifactId = 'wustyq' //artifactId 随便取
version = '1.0.0'
当你点击 sync now 时会报 问题二。
问题二:Could not find method publishing()
解决方法
添加 一句
id 'maven-publish'
这个时候 我们在 terminal 中再执行
gradlew publishToMavenLocal
可以发现成功了。看见 BUILD SUCCESSFUL 说明本地编译成功。
第五步:发布在 gitee 并生成 realease 版本
注意:推荐大家使用 github ,根据经验 jitpack 和 github 搭配的更好
项目推送到 gitee 我就不在此作说明,我们直接到项目推送到gitee上的这一步。
点击 发行版 =》 创建
填写信息并发布
发布成功
第六步:前往 jitpack 上编译
jitpack官网JitPack | Publish JVM and Android librarieshttps://jitpack.io/
复制项目地址
粘贴地址 并 编译
编译中,仅仅等待编译结果即可
大概等三四分钟就可以出结果,可惜的是,我们第一次失败了,不要担心我们来看看报错。
红色代表失败,点击即可查看报错日志
问题三: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
这个错误这一次是在 jitpack 平台上编译出的错误,又是也可能在 本地编译时就出错了
解决方法:
在 \\ToastLib\\build.gradle 中 把 compileOptions 节点 里的 VERSION_1_8 修改成
compileOptions
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
在项目根目录下新建一个 jitpack.yml 文件,里面配置 java11
before_install:
- sdk install java 11.0.10-open
- sdk use java 11.0.10-open
jdk:
- openjdk11
然后 push 到 gitee 上重新 realease ,编译,后面解决报错都是这么一个步骤。
就是反复排错
感兴趣的同学可以试着看看编译报告,就会发现我们配置的指令是生效了的
经过三次编译,我们的库也是成功的发布了
点击 get it 就会告诉我们如何引用我们的库
下面,我们就新建一个项目来试试我们的库。
第七步:测试我们自己写的开源库
- 新建一个测试项目
- 导入依赖包
Add it in your root build.gradle at the end of repositories:
译文:你的根目录的 build.gradle 中repositories节点 结尾处添加它
allprojects
repositories
...
maven url 'https://jitpack.io'
注意看我是加在那个地方了!!!
如果你的地址加载错误就会报错,如下:
(由于中途我以为是库出错了,所以重新编译到了 1.0.5 ,你么继续1.0.2就好了,库没问题,配置仓库路径出了问题)
Add the dependency
译文:在你的 module 下的 build.gradle 中添加依赖
dependencies
implementation 'com.gitee.wustyq:test-jitpack:1.0.2'
点击 sync now
可以看到,我们成功的导入了
- 使用库类
我们就做一个按钮点击功能,调用我们库里面的 Toast
package com.wust.testmyjitpack;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.wust.toastlib.yqTaostUtils;
public class MainActivity extends AppCompatActivity
private Button btn_show_toast;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_show_toast = findViewById(R.id.btn_show_toast);
btn_show_toast.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
// 使用我们的库
yqTaostUtils.showToast(MainActivity.this);
);
运行结果
开源代码: testJitpack: 测试 jitpack 开源库 (gitee.com)https://gitee.com/wustyq/test-jitpack
测试代码
yiqi/testMyJitpack - 码云 - 开源中国 (gitee.com)https://gitee.com/wustyq/test-my-jitpack
以上是关于gradle7.0.2如何发布jitpack开源项目的主要内容,如果未能解决你的问题,请参考以下文章