1+ apply plugin : ' maven-publish'
2+ apply plugin : ' signing'
3+ apply plugin : ' org.jetbrains.dokka'
4+
5+ task androidSourcesJar (type : Jar ) {
6+ archiveClassifier. set(' sources' )
7+ if (project. plugins. findPlugin(" com.android.library" )) {
8+ from android. sourceSets. main. java. srcDirs
9+ from android. sourceSets. main. kotlin. srcDirs
10+ } else {
11+ from sourceSets. main. java. srcDirs
12+ from sourceSets. main. kotlin. srcDirs
13+ }
14+ }
15+
16+ tasks. withType(dokkaHtmlPartial. getClass()). configureEach {
17+ pluginsMapConfiguration. set(
18+ [" org.jetbrains.dokka.base.DokkaBase" : """ { "separateInheritedMembers": true}""" ]
19+ )
20+ }
21+
22+ task javadocJar (type : Jar , dependsOn : dokkaJavadoc) {
23+ archiveClassifier. set(' javadoc' )
24+ from dokkaJavadoc. outputDirectory
25+ }
26+
27+ artifacts {
28+ archives androidSourcesJar
29+ archives javadocJar
30+ }
31+
32+
33+ group = PUBLISH_GROUP_ID
34+ version = PUBLISH_VERSION
35+
36+ ext[" signing.keyId" ] = ' '
37+ ext[" signing.password" ] = ' '
38+ ext[" signing.secretKeyRingFile" ] = ' '
39+ ext[" ossrhUsername" ] = ' '
40+ ext[" ossrhPassword" ] = ' '
41+ ext[" sonatypeStagingProfileId" ] = ' '
42+
43+ File secretPropsFile = project. rootProject. file(' local.properties' )
44+ if (secretPropsFile. exists()) {
45+ Properties p = new Properties ()
46+ p. load(new FileInputStream (secretPropsFile))
47+ p. each { name , value ->
48+ ext[name] = value
49+ }
50+ } else {
51+ ext[" signing.keyId" ] = System . getenv(' SIGNING_KEY_ID' )
52+ ext[" signing.password" ] = System . getenv(' SIGNING_PASSWORD' )
53+ ext[" signing.secretKeyRingFile" ] = System . getenv(' SIGNING_SECRET_KEY_RING_FILE' )
54+ ext[" ossrhUsername" ] = System . getenv(' OSSRH_USERNAME' )
55+ ext[" ossrhPassword" ] = System . getenv(' OSSRH_PASSWORD' )
56+ ext[" sonatypeStagingProfileId" ] = System . getenv(' SONATYPE_STAGING_PROFILE_ID' )
57+ }
58+
59+ publishing {
60+ publications {
61+ release(MavenPublication ) {
62+ groupId PUBLISH_GROUP_ID
63+ artifactId PUBLISH_ARTIFACT_ID
64+ version PUBLISH_VERSION
65+ if (project. plugins. findPlugin(" com.android.library" )) {
66+ artifact(" $buildDir /outputs/aar/${ project.getName()} -release.aar" )
67+ } else {
68+ artifact(" $buildDir /libs/${ project.getName()} -${ version} .jar" )
69+ }
70+
71+ artifact androidSourcesJar
72+ artifact javadocJar
73+
74+ pom {
75+ name = PUBLISH_ARTIFACT_ID
76+ description = ' An android image compressor library'
77+ url = ' https://github.com/zetbaitsu/Compressor'
78+ licenses {
79+ license {
80+ name = ' The Apache Software License, Version 2.0'
81+ url = ' http://www.apache.org/licenses/LICENSE-2.0.txt'
82+ }
83+ }
84+ developers {
85+ developer {
86+ id = ' zetbaitsu'
87+ name = ' Zetra'
88+ 89+ }
90+ }
91+ scm {
92+ connection = ' scm:git:github.com/zetbaitsu/Compressor.git'
93+ developerConnection = ' scm:git:ssh://github.com/zetbaitsu/Compressor.git'
94+ url = ' https://github.com/zetbaitsu/Compressor/tree/main'
95+ }
96+ withXml {
97+ def dependenciesNode = asNode(). appendNode(' dependencies' )
98+
99+ project. configurations. implementation. allDependencies. each {
100+ def dependencyNode = dependenciesNode. appendNode(' dependency' )
101+ dependencyNode. appendNode(' groupId' , it. group)
102+ dependencyNode. appendNode(' artifactId' , it. name)
103+ dependencyNode. appendNode(' version' , it. version)
104+ }
105+ }
106+ }
107+ }
108+ }
109+ repositories {
110+ maven {
111+ name = " sonatype"
112+
113+ def releasesRepoUrl = " https://s01.oss.sonatype.org/content/repositories/releases/"
114+ def snapshotsRepoUrl = " https://s01.oss.sonatype.org/content/repositories/snapshots/"
115+ url = version. endsWith(' SNAPSHOT' ) ? snapshotsRepoUrl : releasesRepoUrl
116+
117+ credentials {
118+ username ossrhUsername
119+ password ossrhPassword
120+ }
121+ }
122+ }
123+ }
124+
125+ nexusStaging {
126+ packageGroup = PUBLISH_GROUP_ID
127+ stagingProfileId = sonatypeStagingProfileId
128+ username = ossrhUsername
129+ password = ossrhPassword
130+ }
131+
132+ signing {
133+ sign publishing. publications
134+ }
0 commit comments