提交Library到私有Maven仓库

本文介绍如何在Android开发中使用私有Maven仓库,包括配置上传与使用私有库的方法,以及如何区分snapshot与release版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

提到Maven,Java开发者再熟悉不过了,它是一款依赖管理、用于构建的工具。在Android Studio里面,gradle支持jcenter()、mavenCentral() ,新版本的Android Studio默认使用jcenter()。AS团队从对开发者的友好程度上选择了jcenter。然而,很多中大型企业在内部搭建了Maven的私有仓库,为企业内部的开发人员提供便捷的包管理服务。
jcenter:https://bintray.com/
Sonatype MavenCentral:https://issues.sonatype.org/secure/Dashboard.jspa
可能是因为国内墙的原因,尝试在Jcenter上发布包,未果,总体上体验还不是那么尽如人意。
在AS里面,打开Project的build.gradle,可以看到默认使用的是jcenter如下:

buildscript {
    repositories {
        jcenter()
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

配置Library

私有Maven地址:https://maven.bingosoft.net
创建一个Library工程,例如bingosso-client。我们的目标是将该工程开发出的包提交到Maven。

接下来,打开Module对应的build.gradle文件,增加如下配置:

apply plugin: 'maven'
uploadArchives {
    repositories {
        mavenDeployer {
            snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {
                authentication(userName:MAVEN_USERNAME, password: MAVEN_PASSWORD)
            }
            repository(url: MAVEN_REPO_RELEASE_URL) {
                authentication(userName:MAVEN_USERNAME, password: MAVEN_PASSWORD)
            }
            pom.project {
                version '0.1.0'
                artifactId 'bingosso-client'
                groupId 'com.bingo.sso.android'
                packaging 'aar'
                description 'bingosso for android platform'
            }
        }
    }
}

从上面的配置,可以看出,build.gradle是通过uploadArchives这个节点的配置来对接Maven仓库的。上面用到的一些变量配置在gradle.properties里面:

#Maven仓库的URL
MAVEN_REPO_RELEASE_URL=https://maven.bingosoft.net/content/repositories/releases/
MAVEN_REPO_SNAPSHOT_URL=https://maven.bingosoft.net/content/repositories/snapshots/

#Maven用户名
MAVEN_USERNAME=xxxx
#登录nexus oss的密码
MAVEN_PASSWORD=xxxx123

关于snapshot和release

Maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。在Android Studio中,无需直接面对pom文件,在AS中是自动生成的,只需要设置上面的version即可(例如1.2.0-SNAPSHOT)

执行uploadArchives

打开Android Studio左边的Gradle选项卡,双击uploadArchives即可:

之后会看到如下现象:

上传过程中遇到的问题

在执行上面的过程中可能会遇到问题,例如SSL的安全问题等。已经记录在此:http://blog.youkuaiyun.com/seafishyls/article/details/56846225

Gradle使用私有仓库的包

打开需要引用该仓库的Project对应的build.gradle,如下设置:

allprojects {
    repositories {
        jcenter()
        maven{
            url 'https://maven.bingosoft.net/content/repositories/releases/'
        }
    }
}

再打开Module对应的build.gradle,增加如下配置:

dependencies {
    compile 'com.bingo.sso.android:bingosso-client:0.1.0'
}

发布SNAPSHOT

发布snapshot(快照),顾名思义,它是经常变动的,或者叫做hotfix,使用者在同步的时候可以随时拿到最新的改动(release无法拿到拿到最新改动的代码)。发布快照只需要对版本号做处理:

version '0.1.0-SNAPSHOT' //注意必须是大写,否则发布不成功

同时,需要在引用的build.gradle里面添加如下配置:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 1, 'minutes'
}

引用的时候就变成这样:

dependencies {
    compile 'com.bingo.sso.android:bingosso-client:0.1.0-SNAPSHOT'
}

整个过程还算比较顺利,有不对的地方欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值