文章阅读
Android打包so库封装成lib,上传到自建nexus仓库
2025/12/1681 次阅读6 分钟
1.准备so库
下载好第三方打包好的so库
在lib的根目录下创建一个libs目录,把so库,和一些三方jar包引入进去

2.声明jinlib库
我这里用了kotlin的dsl脚本,所以需要在libary根目录下的build.gradle.kts文件中添加配置
android {
.... 省略一些其他配置
sourceSets {
getByName("main"){
jniLibs.srcDir("libs")
}
}
}
如果要引入第三方jar包,则添加
dependencies {
implementation(files("libs/INetSDK.jar"))
}
后面更新一下gradle依赖库async一下就好了
android > gradlew -i --info
打包
在Android目录下,执行
dd_dh_lib 换成libary名字
./gradlew dd_dh_lib:assembleRelease --info
它会在build/dd_dh_lib/outputs/arr/目录下生成一个dd_dh_lib-release.aar文件,
后面需要将这个aar上传到第三方的maven仓库,方便远程调用

上传
我这里用的自建仓库
在build.gradle.kts添加maven-publish插件

在最外层添加配置
try{
val props = Properties()
props.load(FileInputStream(File("/Users/ldd/maven.properties")))
val mavenUsername: String = props.getProperty("username")
val mavenPassword: String = props.getProperty("password")
afterEvaluate {
publishing {
repositories {
maven {
name = "sonatype"
url = uri("http://198.23.137.134:8081/repository/maven-releases/")
credentials {
username = mavenUsername
password = mavenPassword
}
isAllowInsecureProtocol = true
}
publications {
create<MavenPublication>("release") {
groupId = "shop.itbug"
artifactId = "dd_dh_lib"
version = version
artifact("$buildDir/outputs/aar/${project.name}-release.aar")
pom {
name.set("大华摄像头安卓操作模块")
description.set("梁典典的服务接口")
url.set("https://itbug.shop")
developers {
developer {
id.set("ldd")
name.set("梁典典")
email.set("hlxsmail@gmail.com")
}
}
licenses {
license {
name.set("The Apache License, Version 2.0")
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
}
}
}
}
}
}
}
}
}catch (e:Exception){
println("error:${e.localizedMessage}")
}
注意
要把第3步生成的aar包配置一下:artifact("$buildDir/outputs/aar/${project.name}-release.aar")
执行命令
等待上传完毕就可以了
调用
可以在自建仓库中找到
引用方式

build.gradle添加
maven {
url = "http://198.23.137.134:8081/maven-releases"
allowInsecureProtocol = true
}
完成