1
- apply plugin : ' com.android.library'
2
-
1
+ plugins {
2
+ id(" com.android.library" )
3
+ id(" maven-publish" )
4
+ id(" signing" )
5
+ }
3
6
4
7
android {
5
8
compileSdkVersion Integer . parseInt(project. ANDROID_BUILD_SDK_VERSION )
6
9
7
10
configurations {
8
- javadocSources. extendsFrom implementation
11
+ javadocSources. extendsFrom( implementation)
9
12
}
10
13
11
14
defaultConfig {
@@ -14,6 +17,7 @@ android {
14
17
versionCode Integer . parseInt(project. VERSION_CODE )
15
18
versionName project. VERSION_NAME
16
19
}
20
+
17
21
buildTypes {
18
22
release {
19
23
minifyEnabled false
@@ -31,90 +35,88 @@ android {
31
35
}
32
36
33
37
dependencies {
34
- testImplementation ' junit:junit:4.13'
38
+ testImplementation( " junit:junit:4.13" )
35
39
36
- implementation " androidx.annotation:annotation:$ANDROIDX_VERSION "
37
- implementation " androidx.appcompat:appcompat:$ANDROIDX_VERSION "
40
+ implementation( " androidx.annotation:annotation:$ANDROIDX_VERSION " )
41
+ implementation( " androidx.appcompat:appcompat:$ANDROIDX_VERSION " )
38
42
}
39
43
40
- // Release tasks
41
- afterEvaluate {
42
- apply plugin : ' maven'
43
- apply plugin : ' signing'
44
- uploadArchives. repositories. mavenDeployer {
45
- beforeDeployment {
46
- MavenDeployment deployment -> signing. signPom(deployment)
47
- }
48
-
49
- pom. groupId = GROUP
50
- pom. artifactId = POM_ARTIFACT_ID
51
- pom. version = VERSION_NAME
52
-
53
- repository(url : " https://oss.sonatype.org/service/local/staging/deploy/maven2/" ) {
54
- authentication(userName : hasProperty(' NEXUS_USERNAME' ) ? NEXUS_USERNAME : " " ,
55
- password : hasProperty(' NEXUS_PASSWORD' ) ? NEXUS_PASSWORD : " " )
56
- }
44
+ task libraryJavadocs (type : Javadoc ) {
45
+ failOnError = false
46
+ source = android. sourceSets. main. java. srcDirs
47
+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
48
+ classpath + = configurations. javadocSources
49
+ }
57
50
58
- pom. project {
59
- name POM_NAME
60
- packaging POM_PACKAGING
61
- description POM_DESCRIPTION
62
- url POM_URL
51
+ task libraryJavadocsJar (type : Jar , dependsOn : libraryJavadocs) {
52
+ archiveClassifier. set(" javadoc" )
53
+ from libraryJavadocs. destinationDir
54
+ }
63
55
64
- developers {
65
- developer {
66
- id POM_DEVELOPER_ID
67
- name POM_DEVELOPER_NAME
68
- }
69
- }
56
+ task librarySourcesJar (type : Jar ) {
57
+ archiveClassifier. set(" sources" )
58
+ from android. sourceSets. main. java. srcDirs
59
+ }
70
60
71
- licenses {
72
- license {
73
- name POM_LICENCE_NAME
74
- url POM_LICENCE_URL
75
- distribution POM_LICENCE_DIST
76
- }
77
- }
61
+ task jar (type : Jar ) {
62
+ dependsOn ' assembleRelease'
63
+ baseName project. POM_ARTIFACT_ID
64
+ version project. VERSION_NAME
65
+ from fileTree(dir : ' build/intermediates/classes/release/' )
66
+ }
78
67
79
- scm {
80
- url POM_SCM_URL
81
- connection = POM_SCM_CONNECTION
82
- developerConnection = POM_SCM_DEV_CONNECTION
68
+ publishing {
69
+ repositories {
70
+ maven {
71
+ url = " https://oss.sonatype.org/service/local/staging/deploy/maven2/"
72
+ credentials {
73
+ username = project. properties[' NEXUS_USERNAME' ] ?: " "
74
+ password = project. properties[' NEXUS_PASSWORD' ] ?: " "
83
75
}
84
76
}
85
77
}
86
78
87
- signing {
88
- required { gradle. taskGraph. hasTask(" uploadArchives" ) }
89
- sign configurations. archives
90
- }
91
-
92
- task libraryJavadocs(type : Javadoc ) {
93
- failOnError = false
94
- source = android. sourceSets. main. java. srcDirs
95
- classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
96
- classpath + = configurations. javadocSources
97
- }
98
-
99
- task libraryJavadocsJar(type : Jar , dependsOn : libraryJavadocs) {
100
- classifier = ' javadoc'
101
- from libraryJavadocs. destinationDir
102
- }
79
+ publications {
80
+ maven(MavenPublication ) { publication ->
81
+ groupId = GROUP
82
+ artifactId = POM_ARTIFACT_ID
83
+ version = VERSION_NAME
84
+
85
+ artifact(librarySourcesJar)
86
+ artifact(libraryJavadocsJar)
87
+ artifact(" $buildDir /outputs/aar/library-release.aar" )
88
+
89
+ pom {
90
+ name = POM_NAME
91
+ packaging = POM_PACKAGING
92
+ description = POM_DESCRIPTION
93
+ url = POM_URL
94
+
95
+ licenses {
96
+ license {
97
+ name = POM_LICENCE_NAME
98
+ url = POM_LICENCE_URL
99
+ distribution = POM_LICENCE_DIST
100
+ }
101
+ }
103
102
104
- task librarySourcesJar(type : Jar ) {
105
- classifier = ' sources'
106
- from android. sourceSets. main. java. srcDirs
107
- }
103
+ developers {
104
+ developer {
105
+ id = POM_DEVELOPER_ID
106
+ name = POM_DEVELOPER_NAME
107
+ }
108
+ }
108
109
109
- task jar(type : Jar ) {
110
- dependsOn ' assembleRelease'
111
- baseName project. POM_ARTIFACT_ID
112
- version project. VERSION_NAME
113
- from fileTree(dir : ' build/intermediates/classes/release/' )
110
+ scm {
111
+ connection = POM_SCM_CONNECTION
112
+ developerConnection = POM_SCM_DEV_CONNECTION
113
+ url = POM_SCM_URL
114
+ }
115
+ }
116
+ }
114
117
}
118
+ }
115
119
116
- artifacts {
117
- archives libraryJavadocsJar
118
- archives librarySourcesJar
119
- }
120
+ signing {
121
+ sign publishing. publications. maven
120
122
}
0 commit comments