AndroidStudio加速之--(三)发布aar到Artifactory

具体关于上传的详细说明可以查看官方的 Artifactory gradle插件 一文。

一、前言

经过前面的实战,我们已经创建好了一个位于本地或者内网的构件仓库。而且里面也创建了一个Local仓库,目的是用来上传我们开发的共享文件等。下面我们就一起使用打包aar并上传到仓库的例子来讲解。

本文章基于以下两篇文章:
AndroidStudio加速之–(一)构件仓库Artifactory,需要搭建好构件仓库。
Android NDK、JNI之–(四)so打包发布aar,使用其中的hello module。

二、添加jfrog gradle依赖

2.1、工程模块下build.gradle

添加jfrog的gradle依赖,注意版本,不同版本的下文DSL写法不同,本文使用的jfrog gradle版本是4.15.2:

dependencies {
	...
	classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.15.2"
}

2.2、hello module下的build.gradle

该module主要是JNI的相关demo,提供了一个包含本地方法getHello()的ShowHello类,以及相关的cpp文件等。 关于该hello module请查看前言中的相关文章。

在该module下的build.gradle文件中添加maven-publish和artifactory的插件,并且使用jfrog gradle的DSL语法添加相关配置,然后构建工程,代码如下,详解见注释:

...
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

...
//定义artifactory仓库的地址,按照你自己的修改
def MAVEN_LOCAL_PATH = 'http://192.168.x.x:xxxx/artifactory'

// 定义构件的相关信息
// 当其他项目远程依赖该构件的时候,结构类似就是 implementation 'GROUP_ID:ARTIFACT_ID:VERSION_NAME'
def GROUP_ID = 'com.cooloongwu.hello'
def ARTIFACT_ID = 'hello.native'
def VERSION_NAME = '1.0.3'

publishing {
    publications {
        aar_pub(MavenPublication) {//注意这里定义的 aar_pub,在artifactoryPublish 下需要使用
            groupId = GROUP_ID
            artifactId = ARTIFACT_ID
            version = VERSION_NAME

            // aar文件所在的位置
            // module打包后所在路径为module模块下的build/outputs/aar,生成的aar名称为:module名-release.aar
            artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
        }
    }
}

artifactoryPublish {
    contextUrl = MAVEN_LOCAL_PATH
    publications ('aar_pub')		//注意这里使用的是上面定义的 aar_pub

    clientConfig.publisher.repoKey = 'local'		//上传到的仓库地址
    clientConfig.publisher.username = 'admin'		//artifactory 登录的用户名
    clientConfig.publisher.password = 'password'	//artifactory 登录的密码
}

三、打包并上传

经过上述步骤之后,在右侧Gradle面板中找到hello module,然后找到Tasks->other->assembleRelease,双击执行后即可在hello module下的build/outputs/aar文件夹下看到生成的aar文件了。
然后我们在Gradle面板中,同样是hello module下,找到Task->publishing->artifactoryPublish
在这里插入图片描述
双击之后即可看到控制台中会不断的输出执行信息。
等待片刻后可以看到仓库中已经有了我们上传上来的aar文件等:
在这里插入图片描述
注意:每次更新了hello module的代码想要重新生成的aar文件时,需要先Clean Project,然后执行assembleRelease,然后再执行 artifactoryPublish,否则会无法上传。

对此,我们可以在项目根目录下使用命令:gradlew :hello:clean assembleRelease artifactoryPublish,一条命令顺序将这三步搞定,这样就不会出现无法上传的问题了。

四、其他项目使用

其他项目使用的时候首先你应该配置了使用内网仓库的,那么此时可以直接在你需要使用aar的模块,添加依赖即可,例如我们刚刚上传的aar:

implementation 'com.cooloongwu.hello:hello.native:1.0.3'

然后运行项目,log打印ShowHello().getHello() 即可看到相关信息。

五、总结

本文通过将相关aar文件上传到artifactory进行了实际的操作。我自己踩到了一些坑,因为参考的其他文章基本都是旧版本的,所以无奈又去官网查看了相关的资料,所以大家有什么问题的话一定先去官网翻翻吧。

最后说下,我最近写的一些文章知识点基本快串联起来了。下面是相关的文章:
AndroidStudio加速之–(一)构件仓库Artifactory
Android NDK、JNI之–(四)so打包发布aar
Android 编译插桩之–自定义Gradle插件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值