1+ apply plugin : " maven-publish"
2+ apply plugin : " signing"
3+ apply plugin : " io.github.sabujak-sabujak"
4+
5+ if (project. rootProject. file(' local.properties' ). isFile()) {
6+ Properties props = new Properties ()
7+ props. load(new FileInputStream (rootProject. file(" local.properties" )))
8+ project. ext {
9+ setProperty(" ossrhUsername" , props[" ossrhUsername" ] ?: ' ' )
10+ setProperty(" ossrhPassword" , props[" ossrhPassword" ] ?: ' ' )
11+ setProperty(" signingKeyId" , props[" signing.keyId" ] ?: ' ' )
12+ setProperty(" signingPassword" , props[" signing.password" ] ?: ' ' )
13+ setProperty(" signingKey" , props[" signing.key" ] ?: ' ' )
14+ setProperty(" githubAccessTokens" , props[" github_access_tokens" ] ?: ' ' )
15+ }
16+ } else {
17+ project. ext {
18+ setProperty(" ossrhUsername" , ' ' )
19+ setProperty(" ossrhPassword" , ' ' )
20+ setProperty(" signingKeyId" , ' ' )
21+ setProperty(" signingPassword" , ' ' )
22+ setProperty(" signingKey" , ' ' )
23+ setProperty(" githubAccessTokens" , ' ' )
24+ }
25+ }
26+
27+ group = " io.github.sangcomz"
28+ version = gradle. versionName
29+ archivesBaseName = " StickyTimeLine"
30+
31+ def siteUrl = ' https://github.com/sangcomz/StickyTimeLine' // Homepage URL of the library
32+ def gitUrl = ' https://github.com/sangcomz/StickyTimeLine.git' // Git repository URL
33+
34+ afterEvaluate {
35+
36+ task sourceJar(type : Jar ) {
37+ from android. sourceSets. main. java. srcDirs
38+ archiveClassifier. set(" sources" )
39+ }
40+
41+ task javadoc(type : Javadoc ) {
42+ source = android. sourceSets. main. java. srcDirs
43+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
44+ }
45+
46+ task javadocJar(type : Jar , dependsOn : javadoc) {
47+ archiveClassifier. set(" javadoc" )
48+ from javadoc. destinationDir
49+ }
50+
51+ // https://docs.gradle.org/current/userguide/publishing_maven.html
52+ publishing {
53+ publications {
54+ // Creates a Maven publication called "release".
55+ release(MavenPublication ) {
56+ groupId group
57+ artifactId archivesBaseName
58+ version version
59+
60+ if (project. plugins. findPlugin(" com.android.library" )) {
61+ from components. release
62+ } else {
63+ from components. java
64+ }
65+ artifact sourceJar
66+ artifact javadocJar
67+
68+ pom {
69+ name = archivesBaseName
70+ description = ' StickyTimeLine is timeline view for android.'
71+ url = siteUrl
72+ licenses {
73+ license {
74+ name = ' The Apache License, Version 2.0'
75+ url = ' http://www.apache.org/licenses/LICENSE-2.0.txt'
76+ }
77+ }
78+ developers {
79+ developer {
80+ id = ' sangcomz'
81+ name = ' Swokwon Jeong'
82+ 83+ }
84+ }
85+ scm {
86+ url = gitUrl
87+ }
88+ }
89+ }
90+ }
91+
92+ repositories {
93+ maven {
94+ if (version. endsWith(" -SNAPSHOT" )) {
95+ url = " https://s01.oss.sonatype.org/content/repositories/snapshots/"
96+ } else {
97+ url = " https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
98+ }
99+ credentials {
100+ username ossrhUsername
101+ password ossrhPassword
102+ }
103+ }
104+ }
105+ }
106+
107+ signing {
108+ useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
109+ sign publishing. publications. release
110+ }
111+
112+ javadoc {
113+ if (JavaVersion . current(). isJava9Compatible()) {
114+ options. addBooleanOption(' html5' , true )
115+ }
116+ }
117+ }
118+
119+ githubRelease {
120+ owner = ' sangcomz'
121+ repo = ' StickyTimeLine'
122+ token = githubAccessTokens
123+ tagName = version
124+ targetCommitish = ' master'
125+ body = """ ## Release Note
126+ * [Improvement] Move to MavenCentral
127+ * [Improvement] lib version update
128+ """
129+ name = version
130+ }
0 commit comments