0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Maven进行组件化发布(中)

jf_78858299 来源:小余的自习室 作者:小余的自习室 2023-03-30 11:36 次阅读

实战中maven私服接入:

第三方lib库的上传操作

使用as创建一个新的项目,在新建项目下创建一个lib库,命名为:lib_vedio:并在lib_vediobuild.gradle工程文件下面,引入maven库:

实现uploadArchives的task方法:这个方法用于上传lib库:

plugins {
    id 'com.android.library'
    id 'maven'
}

//上传的类库名称
def _artifactId = this.getName() 
//类库版本
def pomVersionName = '1.0.1'
def pomName = this.getName()
//类库描述
def pomDescription = 'the vedio library for all project'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url:NEXUS_REPOSITORY_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            pom.project {
                name pomName
                version pomVersionName
                description pomDescription
                artifactId _artifactId
                groupId POM_GROUPID
                packaging POM_PACKAGING
            }
        }
    }
}

里面一些变量是在gradle.properties中设置的全局变量:

NEXUS_REPOSITORY_URL=http://localhost:8081/repository/anna_release/
POM_GROUPID=com.anna.android
POM_PACKAGING=aar
NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123456

设置好后,执行uploadArchives任务,这个时候我们本地的lib_vedio库就会上传到我们之前搭建的maven私服上:

这里因为我们上传了两个版本1.0.0和1.0.1

切记:

如果当前仓库选择的是release属性:则每次上传的版本不能一致,需要在原版本基础上增加

如果选择的是snapshot属性:则可以在不增加版本号的前提下,修改同一版本的代码并上传。

maven私服仓库的接入:

我们在项目的build.gradle文件中引入maven库:

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url = 'http://localhost:8081/repository/anna_release/'
            credentials {
                username = 'admin'
                password = 'admin123456'
            }
        }

    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url = 'http://localhost:8081/repository/anna_release/'
            credentials {
                username = 'admin'
                password = 'admin123456'
            }
        }
    }
}

并在app模块引入lib库文件:

implementation 'com.anna.android:lib_video:1.0.1'

这样就可以在我们项目中愉快使用类库啦。

3.如何发布到Github仓库

如果我们需要开源我们的代码就需要将仓库发布到公共仓库中:

步骤1:在项目级build.gradle中设置

buildscript {
    repositories {
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
    }
}

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

步骤2:在模块级build.gradle设置如下

apply plugin: 'com.github.dcendents.android-maven'
group = 'com.github.xxx' // xxx为github 的用户名

步骤3:将源码pushgithub

步骤4:在github上创建 Release Tag

图片

release tag.png

步骤5:打开https://jitpack.io 网址, 点击look up

图片

jitpack.png

然后会显示出对应的编译版本信息:

红色代表编译失败

蓝色代表编译成功

可通过日志查看编译错误原因:

图片

编译失败信息.png

步骤6:类库引入:在项目级 build.gradle 声明远程仓库,在模块级 build.gradle 中依赖类库。

项目级build.gradle

buildscript {
    repositories {
...
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        ...
        classpath 'com.github.ByteYuhb.a_gradle_plugin_sample:uploadversion:1.0.3'
    }
}

这里我们上传的是一个gradle插件库,所以需要在buildscript中的dependencies声明插件版本信息

关于Gradle自定义插件的编写可以参考这篇文章:

Gradle筑基篇(五)-Gradle自定义插件实战

模块级build.gradle

apply plugin: 'com.yuhb.upload'

versionInfo {
    versionName = '1.0.0'
    versionCode = 1
    versionUpdateInfo = '当前是第一个版本:初始apk'
}
引入插件的group和扩展信息

结果

在编译期:打印出了Gradle插件中的信息:

Task :app:uploadTask
name:1.0.0 code:1 info:当前是第一个版本:初始apk

4.指定发布二进制文件:

使用新版 Maven 插件,可以直接以指定二进制文件的方式发布组件。例如:

apply plugin: 'maven-publish'

publishing {
    publications {
        [任务名](MavenPublication) {
            groupId MAVEN_GROUP_ID
            artifactId MAVEN_ARTIFACTID
            version MAVEN_VERSION
            artifact([文件路径])
        }
    }
    repositories {
        maven {
            // 发布仓库路径
            url MAVEN_RELEASE_URL
        }
    }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发
    +关注

    关注

    0

    文章

    342

    浏览量

    40600
  • maven
    +关注

    关注

    0

    文章

    28

    浏览量

    3647
  • gradle
    +关注

    关注

    0

    文章

    26

    浏览量

    661
收藏 人收藏

    评论

    相关推荐

    Maven-01-Maven概述

    maven
    电子学习
    发布于 :2023年01月08日 17:15:37

    Maven 配置指南

    区)Maven 配置发生有三个级别:Project – 静态配置在pom.xmlInstalltion – 这个配置在maven的一次安装User – 这个配置指定部分用户这样区分就清晰了 – 项目定义
    发表于 08-28 15:08

    【新功能】企业级Maven私有仓库服务结束公测,全面开放使用

    的settings.xml文件,那么用户需要自行将私有仓库的配置信息添加到该文件。具体可以参考Maven私有仓库服务。通过云效上传二方库到私有仓库如果想通过流水线发布二方库到私有仓库,可以先在项目代码库根目录
    发表于 06-20 15:50

    在Linux平台下面安装Maven步骤说明

    Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目
    发表于 07-23 06:14

    Linux下的Maven安装方法

    关键步骤如下: 1. 下载Maven包. 2. 解压Maven包. 3.配置Maven系统参数,验证Maven是否正确安装.
    发表于 07-23 08:01

    HarmonyOS组件更新,新增700+开源组件

    源文件引用(build.gradle)开发者对使用的组件有优化需求的时候,可以进行源文件引用,把源码下载下来后同步修改。优化之后,还可以把源码贡献到开源仓。dependencies
    发表于 11-18 11:17

    如何在嵌入式容器Jetty或Tomcat运行带有Maven的Java Web应用程序

    在开发Java Web应用程序时,从“真实”环境获得快速反馈非常实用。 在本文中,我将探讨如何在嵌入式容器Jetty或Tomcat运行带有Maven的Java Web应用程序。 在
    发表于 12-16 06:24

    YoC组件发布开源操作指南须知

    过程中提交代码到组件开发仓库,直到组件功能完成。2.1.5 贡献发布组件开发者将组件贡献合入YoC,需要按照以下章节3
    发表于 03-09 07:37

    MyEclipse环境搭建Maven的开发环境

    一:Maven的下载安装 1、安装环境:win7 旗舰版 + MyEclipse2014 2、前置条件:JDK (本人用的jdk1.8) 3、maven下载: 说明:maven依赖于jdk,所以搭建
    发表于 11-28 16:13 1276次阅读

    干货:在Windows上安装Maven及配置

    干货:在Windows上安装Maven及配置
    的头像 发表于 06-20 09:24 2547次阅读
    干货:在Windows上安装<b class='flag-5'>Maven</b>及配置

    如何使用Maven进行组件发布(上)

    这个时候组件发布共享就显的尤为重要。 这篇文章我们就来讲解下如何使用`Maven进行组件发布
    的头像 发表于 03-30 11:36 961次阅读
    如何使用<b class='flag-5'>Maven</b><b class='flag-5'>进行</b><b class='flag-5'>组件</b>化<b class='flag-5'>发布</b>(上)

    如何使用Maven进行组件发布(下)

    这个时候组件发布共享就显的尤为重要。 这篇文章我们就来讲解下如何使用`Maven进行组件发布
    的头像 发表于 03-30 11:37 756次阅读

    如何理解Maven拉包原理,搞定Maven构建项目

    依赖是我们在使用 Maven 构建项目时最常使用的功能,通过依赖标签,我们可以直接从Maven仓库中引入对应的Jar包,无需手动再将Jar添加到目录下了,可谓是十分方便,不过我们除了使用,还需要考虑多模块下依赖之间的关系。
    发表于 05-25 09:50 354次阅读
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>构建项目

    idea配置了maven但不显示pom

    配置 Maven 是一个开发者常见的任务,通过 Maven 可以更方便地管理项目依赖和构建过程。在配置 Maven 的过程中,我们可能会遇到一些问题,比如没有正确显示 pom 文件。本文将详细介绍
    的头像 发表于 12-06 14:17 840次阅读

    idea如何添加maven

    Maven是一个开源的项目管理工具,它提供了一种简单的方式来管理项目的依赖关系、构建过程和发布部署。本文将详细介绍如何将Maven添加到你的项目中,并使用它来管理你的项目。 第一步:安装Mav
    的头像 发表于 12-06 14:56 452次阅读