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.0' 
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+                         def  dependencyNode =  dependenciesNode. appendNode(' dependency'  )
119+                         dependencyNode. appendNode(' groupId'  , it. group)
120+                         dependencyNode. appendNode(' artifactId'  , it. name)
121+                         dependencyNode. appendNode(' version'  , it. version)
122+                     }
61123                }
62124            }
63125        }
64126    }
65- }
127+     repositories {
128+         maven {
129+             name =  " sonatype" 
130+             def  releasesRepoUrl =  " https://oss.sonatype.org/service/local/staging/deploy/maven2/" 
131+             def  snapshotsRepoUrl =  " https://oss.sonatype.org/content/repositories/snapshots/" 
132+             url =  version. endsWith(' SNAPSHOT'  ) ?  snapshotsRepoUrl :  releasesRepoUrl
66133
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'  )
134+             credentials {
135+                 username ossrhUsername
136+                 password ossrhPassword
92137            }
93138        }
94139    }
140+ }
141+ 
142+ nexusStaging  {
143+     packageGroup =  PUBLISH_GROUP_ID 
144+     stagingProfileId =  sonatypeStagingProfileId
145+     username =  ossrhUsername
146+     password =  ossrhPassword
147+ }
148+ 
149+ signing  {
150+     sign publishing. publications
95151}
0 commit comments