android 上传nexus_上传 Android aar 到 nexus 上

本文介绍了如何使用Gradle的新功能和Android Maven Publish插件将Android AAR库上传到Nexus仓库。详细步骤包括配置Gradle文件、添加插件、设置发布和仓库信息,并处理不同构建类型的上传逻辑。此外,还强调了在gradle.properties中设置Nexus认证凭证的重要性。
摘要由CSDN通过智能技术生成

在新版本的Gradle 中,提供了publish这个操作,简化了整个上传的流程,详细 API在这个文档下,比如如果我需要上传 jar 到 maven上,只需要这样写

group = 'org.example'

version = '1.0'

publishing {

publications {

myLibrary(MavenPublication) {

from components.java

}

}

repositories {

maven {

name = 'myRepo'

url = "file://${buildDir}/repo"

}

}

}

不过这只是Java的, Android的压根没用,所以我又找到一个插件来适配安卓的

首先添加插件

classpath 'digital.wup:android-maven-publish:3.6.2'

然后直接在加入对应代码

build.gradle

apply plugin: 'digital.wup.android-maven-publish'

//主要是区分逻辑,本地打的都是有 DEBUG 标志的包体

def reposUrl = "http://maven.xxx.com"

group = 'com.netease.cc'

publishing {

publications {

android.libraryVariants.all { variant ->

from components.findByName("android${variant.name.capitalize()}")

artifactId "你的aar名字"

version "版本名”

}

}

}

repositories {

maven {

name reposName

url reposUrl

credentials {

username = rootProject.properties['nexusUsername']

password = rootProject.properties['nexusPassword']

}

}

}

}

记得需要再 gradle.properies 中加入 nexusUsername=xxxx和nexusPassword=password 不然会验证不过

在 gradle task 中,应该可以看到publishxxxxx名字的任务,点击相印的任务就能直接上传

更复杂的实现

因为项目中需要实现开发只能上传DEBUG包,RELEASE 包体必须要是构建系统完成,所以我做了个比较复杂的改版

/**

* sdk上传代码仓库的相关信息

*/

//如果是打包机会有这个环境变量

def isPacker = Packer.isPacker(project)

//def isPacker = true

group = 'com.netease.cc'

apply plugin: 'digital.wup.android-maven-publish'

//主要是区分逻辑,本地打的都是有 DEBUG 标志的包体

def versionSuffix = isPacker ? "" : "-DEBUG"

def reposName = isPacker ? "ReleaseRepos" : "DebugRepos"

def reposUrl = "http://xxxx.xxxx.com/nexus/content/repositories/${isPacker ? "releases" : "debug"}"

publishing {

publications {

android.libraryVariants.all { variant ->

def nameLowerCase = variant.name.toLowerCase()

//只创建 release 构建的 push

if (!nameLowerCase.endsWith("release")) {

return

}

def nameLowerCaseWithBuildType = nameLowerCase.replace('release', '')

def artifactIdSuffix = "-${nameLowerCaseWithBuildType}"

"${nameLowerCaseWithBuildType}"(MavenPublication) {

from components.findByName("android${variant.name.capitalize()}")

artifactId "ccgroomsdk${artifactIdSuffix}"

version gradle.ext.sdkMavenVersion + versionSuffix

}

}

}

repositories {

maven {

name reposName

url reposUrl

credentials {

username = rootProject.properties['nexusUsername']

password = rootProject.properties['nexusPassword']

}

}

}

}

这个就不多讲了,日后自己看吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值