跳到主内容
Android
文章阅读

Android打包so库封装成lib,上传到自建nexus仓库

2025/12/1681 次阅读6 分钟

1.准备so库

下载好第三方打包好的so库 在lib的根目录下创建一个libs目录,把so库,和一些三方jar包引入进去 image.png

2.声明jinlib库

我这里用了kotlin的dsl脚本,所以需要在libary根目录下的build.gradle.kts文件中添加配置


android {
   .... 省略一些其他配置
   sourceSets {
        getByName("main"){
            jniLibs.srcDir("libs")
        }
    }
}

如果要引入第三方jar包,则添加


dependencies {
    implementation(files("libs/INetSDK.jar"))
}

image.png 后面更新一下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仓库,方便远程调用 image.png

上传

我这里用的自建仓库

build.gradle.kts添加maven-publish插件 image.png

在最外层添加配置



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")

执行命令image.png 等待上传完毕就可以了

调用

可以在自建仓库中找到 image.png 引用方式 image.png

build.gradle添加


maven {
            url = "http://198.23.137.134:8081/maven-releases"
            allowInsecureProtocol = true
        }

完成

返回顶部