Publish android library to nexus repository

  • 配置nexus 账户密码

    • NEXUS_REPOSITORY_URL
    • NEXUS_USERNAME
    • NEXUS_PASSWORD
  • 配置library: Example: implementation 'com.example.utils:utils:1.0.2'

    • version: 1.0.2
    • artifactId: utils
    • groupId: com.example.utils
    • packaging: aar
  • 创建 nexus_upload.gradle 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
apply plugin: 'maven'

task androidJavadocs(type: Javadoc) {
options.encoding = "utf-8"
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: NEXUS_REPOSITORY_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
name POM_NAME
version POM_VERSION
artifactId POM_ARTIFACTID
groupId POM_GROUPID
packaging POM_PACKAGING
description POM_DESCRIPTION
}
}
}
}
  • 在library module build.gradle 最后引入apply from: 'nexus_upload.gradle'