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

因为新版本的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.release
                groupId = '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 32

    defaultConfig {
        minSdk 21
        targetSdk 32

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                groupId = '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_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

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

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

 会教我们如何去使用:

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

使用:

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

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

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

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

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

GitHub - awoyixiasiquanjia/mylibrary

猜你喜欢

转载自blog.csdn.net/xueyoubangbang/article/details/127633013