如何将Android studio中Library发布到私服Nexus仓库

前言

自己封装的library可以上传到github,打成release,然后登陆JitPack,获取到相应库的版本,然后引用。还可以上传jcenter仓库,审核通过,然后引用。但是gitbub一般个人使用偏多,不适合公司项目;jcenter上传流程复杂,而且需要审核时间。这时,选择私服无疑是一个不错的选择,公司内部搭建,上传简单,而且添加权限无需审核。

搭建

发布Library到私服

1新建文件nexus-push.gradle文件

需要注意的是nexus-push.gradle文件需要和你要上传library的build.gradle文件同一目录级别

apply plugin: 'maven-publish'
apply plugin: 'maven'

task androidJavadocs(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://nexus.**/repository/maven-releases/") {
                authentication(userName: "", password: "")
            }
            pom.groupId = 'com.zzti.fyg'
            pom.artifactId = 'imagepicker'
            pom.version = '1.1.0'
            pom.project {
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
            }
        }
    }
}

2模块引入nexus-push.gradle文件

在你需要上传的library的build.gradle文件中最后一行引入nexus-push.gradle文件

apply from: './nexus-push.gradle'

3上传aar到nexus私服

在Android Studio右侧gradle的Tasks中会多一个upload任务,点击uploadArchives,上传处理

722143-cb49baf75c48eb0d.png
上传操作.png

坑:首次上传该库的时候找不到metadata,会报下面异常,但是你可以登录到web的nexus服务器上看下,已经上传成功,再次上传就不会遇到该提示。

Could not find metadata ... library/maven-metadata.xml in remote (http://localhost:8081/nexus/content/repositories/thirdparty)

下载使用私服上的Library

在要使用library的项目最外层的build.gradle中配置maven私服地址

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'http://nexus.**/repository/maven-releases/'
            credentials {
                username ''
                password ''
                }
            }
        maven { url "https://jitpack.io" }
    }
}

在要在使用的library中引入

implementation 'com.zzti.fyg:imagepicker:1.0.0'

坑:切记gradle中进行权限配置,否则不能下载成功

问题:Android Studio引入的External Libraries存放在本地什么地方?

有时间我们需要更新新的library版本,由于本地有缓存,点击同步不能下载下来,我们可以找到本地library手动删除,在去同步下载。

Mac系统默认下载到:

/Users/(用户名)/.gradle/caches/modules-2/files-2.1

Windows系统默认下载到:

C:\Users\(用户名)\.gradle\caches\modules-2\files-2.1

猜你喜欢

转载自blog.csdn.net/weixin_33762130/article/details/88317015
今日推荐