11apply plugin : ' maven-publish'
2- apply plugin : ' com.jfrog.bintray'
2+ apply plugin : ' signing'
3+
4+ /**
5+ * Publish:
6+ * Fill local.properties according to template-for-local.properties
7+ * ./gradlew build
8+ * ./gradlew publishReleasePublicationToSonatypeRepository
9+ * ./gradlew closeAndReleaseRepository
10+ *
11+ * More info: https://getstream.io/blog/publishing-libraries-to-mavencentral-2021/
12+ */
313
414ext {
5- bintrayRepo = ' CodeQuality-Android'
6- bintrayName = ' CodeQuality-Android'
15+ PUBLISH_GROUP_ID = ' ru.mobileup'
16+ PUBLISH_ARTIFACT_ID = ' code-quality-android'
17+ PUBLISH_VERSION = ' 1.0.1'
18+ DESCRIPTION = ' Gradle plugin for integration with Gitlab Code Quality'
719
8- publishedGroupId = ' ru.mobileup'
9- libraryName = ' CodeQuality-Android'
10- artifact = ' code-quality-android'
20+ GITHUB_USER = ' MobileUpLLC'
21+ GITHUB_PROJECT = ' CodeQuality-Android'
22+ LICENSE_NAME = ' MIT License'
23+ LICENSE_URL = " https://github.com/${ GITHUB_USER} /${ GITHUB_PROJECT} /blob/master/LICENSE"
1124
12- libraryDescription = ' Gradle plugin for integration with Gitlab Code Quality'
13- libraryVersion = ' 1.0.0'
25+ DEVELOPER_ID = ' MobileUp'
26+ DEVELOPER_NAME = ' MobileUp'
27+ DEVELOPER_EMAIL = ' [email protected] ' 28+ }
1429
15- siteUrl = ' https://github.com/MobileUpLLC/CodeQuality-Android/'
16- gitUrl = ' https://github.com/MobileUpLLC/CodeQuality-Android.git'
30+ task androidSourcesJar (type : Jar ) {
31+ archiveClassifier. set(' sources' )
32+ if (project. plugins. findPlugin(" com.android.library" )) {
33+ from android. sourceSets. main. java. srcDirs
34+ from android. sourceSets. main. kotlin. srcDirs
35+ } else {
36+ from sourceSets. main. java. srcDirs
37+ from sourceSets. main. kotlin. srcDirs
38+ }
39+ }
1740
18- developerId = ' MobileUp'
19- developerName = ' MobileUp'
20- developerEmail
= ' [email protected] ' 41+ task javadocJar (type : Jar , dependsOn : dokkaJavadoc) {
42+ archiveClassifier. set(' javadoc' )
43+ from dokkaJavadoc. outputDirectory
44+ }
2145
22- licenseName = ' The MIT License '
23- licenseUrl = ' https://github.com/MobileUpLLC/CodeQuality-Android/blob/master/LICENSE '
24- allLicenses = [ ' MIT ' ]
46+ artifacts {
47+ archives androidSourcesJar
48+ archives javadocJar
2549}
2650
27- java {
28- withJavadocJar()
29- withSourcesJar()
51+ group = PUBLISH_GROUP_ID
52+ version = PUBLISH_VERSION
53+
54+ ext[" signing.keyId" ] = ' '
55+ ext[" signing.password" ] = ' '
56+ ext[" signing.secretKeyRingFile" ] = ' '
57+ ext[" ossrhUsername" ] = ' '
58+ ext[" ossrhPassword" ] = ' '
59+ ext[" sonatypeStagingProfileId" ] = ' '
60+
61+ File secretPropsFile = project. rootProject. file(' local.properties' )
62+ if (secretPropsFile. exists()) {
63+ Properties p = new Properties ()
64+ p. load(new FileInputStream (secretPropsFile))
65+ p. each { name , value ->
66+ ext[name] = value
67+ }
68+ } else {
69+ ext[" signing.keyId" ] = System . getenv(' SIGNING_KEY_ID' )
70+ ext[" signing.password" ] = System . getenv(' SIGNING_PASSWORD' )
71+ ext[" signing.secretKeyRingFile" ] = System . getenv(' SIGNING_SECRET_KEY_RING_FILE' )
72+ ext[" ossrhUsername" ] = System . getenv(' OSSRH_USERNAME' )
73+ ext[" ossrhPassword" ] = System . getenv(' OSSRH_PASSWORD' )
74+ ext[" sonatypeStagingProfileId" ] = System . getenv(' SONATYPE_STAGING_PROFILE_ID' )
3075}
3176
32- // Create Maven Artifact
3377publishing {
3478 publications {
35- codeQualityAndroid(MavenPublication ) {
36- from components. java
37- groupId publishedGroupId
38- artifactId artifact
39- version libraryVersion
79+ release(MavenPublication ) {
80+ groupId PUBLISH_GROUP_ID
81+ artifactId PUBLISH_ARTIFACT_ID
82+ version PUBLISH_VERSION
83+ if (project. plugins. findPlugin(" com.android.library" )) {
84+ artifact(" $buildDir /outputs/aar/${ project.getName()} -release.aar" )
85+ } else {
86+ artifact(" $buildDir /libs/${ project.getName()} -${ version} .jar" )
87+ }
88+
89+ artifact androidSourcesJar
90+ artifact javadocJar
91+
4092 pom {
41- name = libraryName
42- description = libraryDescription
43- url = siteUrl
93+ name = PUBLISH_ARTIFACT_ID
94+ description = DESCRIPTION
95+ url = " https://github.com/ ${ GITHUB_USER } / ${ GITHUB_PROJECT } "
4496 licenses {
4597 license {
46- name = licenseName
47- url = licenseUrl
98+ name = LICENSE_NAME
99+ url = LICENSE_URL
48100 }
49101 }
50102 developers {
51103 developer {
52- id = developerId
53- name = developerName
54- email = developerEmail
104+ id = DEVELOPER_ID
105+ name = DEVELOPER_NAME
106+ email = DEVELOPER_EMAIL
55107 }
56108 }
57109 scm {
58- connection = gitUrl
59- developerConnection = gitUrl
60- url = siteUrl
110+ connection = " scm:git:github.com/${ GITHUB_USER} /${ GITHUB_PROJECT} .git"
111+ developerConnection = " scm:git:ssh://github.com/${ GITHUB_USER} /${ GITHUB_PROJECT} .git"
112+ url = " https://github.com/${ GITHUB_USER} /${ GITHUB_PROJECT} /tree/main"
113+ }
114+ withXml {
115+ def dependenciesNode = asNode(). appendNode(' dependencies' )
116+
117+ project. configurations. implementation. allDependencies. each {
118+ if (it. name != ' unspecified' ) {
119+ def dependencyNode = dependenciesNode. appendNode(' dependency' )
120+ dependencyNode. appendNode(' groupId' , it. group)
121+ dependencyNode. appendNode(' artifactId' , it. name)
122+ dependencyNode. appendNode(' version' , it. version)
123+ }
124+ }
61125 }
62126 }
63127 }
64128 }
65- }
129+ repositories {
130+ maven {
131+ name = " sonatype"
132+ def releasesRepoUrl = " https://oss.sonatype.org/service/local/staging/deploy/maven2/"
133+ def snapshotsRepoUrl = " https://oss.sonatype.org/content/repositories/snapshots/"
134+ url = version. endsWith(' SNAPSHOT' ) ? snapshotsRepoUrl : releasesRepoUrl
66135
67- // Publish to Bintray. Use "./gradlew bintrayUpload" to run it.
68- Properties properties = new Properties ()
69- properties. load(file(' local.properties' ). newDataInputStream())
70-
71- bintray {
72- user = properties. getProperty(' bintray.user' )
73- key = properties. getProperty(' bintray.apikey' )
74- publications = [' codeQualityAndroid' ]
75-
76- pkg {
77- repo = bintrayRepo
78- name = bintrayName
79- desc = libraryDescription
80- websiteUrl = siteUrl
81- vcsUrl = gitUrl
82- licenses = allLicenses
83- userOrg = properties. getProperty(' bintray.userOrg' )
84- publish = true
85- publicDownloadNumbers = true
86- version {
87- name = libraryVersion
88- desc = libraryDescription
89- gpg {
90- sign = true
91- passphrase = properties. getProperty(' bintray.gpg.password' )
136+ credentials {
137+ username ossrhUsername
138+ password ossrhPassword
92139 }
93140 }
94141 }
142+ }
143+
144+ nexusStaging {
145+ packageGroup = PUBLISH_GROUP_ID
146+ stagingProfileId = sonatypeStagingProfileId
147+ username = ossrhUsername
148+ password = ossrhPassword
149+ }
150+
151+ signing {
152+ sign publishing. publications
95153}
0 commit comments