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 操作可以说没什么两样。

如何让别人在gradle中直接compile你的开源库_我想月薪过万的博客-CSDN博客https://blog.csdn.net/qq_41885673/article/details/121575028

操作步骤

第一步:新建一个空的 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开源项目的主要内容,如果未能解决你的问题,请参考以下文章

用JitPack发布开源库时附加文档和源码

Gradle 学习之入门知识

Gradle 学习之入门知识

如何手动从 jitpack.io 下载 aar 和 pom 文件?

无法使用 Jitpack 依赖项

Android 发布开源库到 JitPack (详细步骤)