Skip to content

Commit

Permalink
Setup publishing to mavenCentral
Browse files Browse the repository at this point in the history
  • Loading branch information
dmdevgo committed Feb 7, 2021
1 parent 0c7cc2c commit 15a744c
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 71 deletions.
16 changes: 0 additions & 16 deletions rxpm/androidmaven.gradle

This file was deleted.

25 changes: 0 additions & 25 deletions rxpm/bintray.gradle

This file was deleted.

35 changes: 5 additions & 30 deletions rxpm/build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

Expand Down Expand Up @@ -36,6 +26,7 @@ android {
main.java.srcDirs += 'src/main/kotlin'
test.java.srcDirs += 'src/test/kotlin'
}

}

dependencies {
Expand Down Expand Up @@ -68,25 +59,9 @@ dependencies {
}

ext {
bintrayRepo = 'maven'
bintrayName = 'RxPM'
publishedGroupId = 'me.dmdev.rxpm'
artifact = 'rxpm'
libraryVersion = '1.2.5'
gitUrl = 'https://github.com/dmdevgo/RxPM'
allLicenses = ['MIT']
PUBLISH_GROUP_ID = 'me.dmdev.rxpm'
PUBLISH_VERSION = '1.2.6'
PUBLISH_ARTIFACT_ID = 'rxpm'
}

// Configuration of the library uploading to the Bintray
// Note: Call 'bintrayUpload' task (it will execute 'install' task first)
apply from: 'androidmaven.gradle'
apply from: 'bintray.gradle'

task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

artifacts {
archives sourcesJar
}
apply from: "publish-mavencentral.gradle"
116 changes: 116 additions & 0 deletions rxpm/publish-mavencentral.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
apply plugin: 'maven-publish'
apply plugin: 'signing'

task androidSourcesJar(type: Jar) {
archiveClassifier.set('sources')
if (project.plugins.findPlugin("com.android.library")) {
from android.sourceSets.main.java.srcDirs
} else {
from sourceSets.main.java.srcDirs
}
}

artifacts {
archives androidSourcesJar
}


group = PUBLISH_GROUP_ID
version = PUBLISH_VERSION

ext["signing.keyId"] = ''
ext["signing.password"] = ''
ext["signing.secretKeyRingFile"] = ''
ext["ossrhUsername"] = ''
ext["ossrhPassword"] = ''
ext["sonatypeStagingProfileId"] = ''

File secretPropsFile = project.rootProject.file('local.properties')
if (secretPropsFile.exists()) {
Properties p = new Properties()
p.load(new FileInputStream(secretPropsFile))
p.each { name, value ->
ext[name] = value
}
} else {
ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID')
ext["signing.password"] = System.getenv('SIGNING_PASSWORD')
ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_SECRET_KEY_RING_FILE')
ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID')
}

publishing {
publications {
release(MavenPublication) {
groupId PUBLISH_GROUP_ID
artifactId PUBLISH_ARTIFACT_ID
version PUBLISH_VERSION
if (project.plugins.findPlugin("com.android.library")) {
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
} else {
artifact("$buildDir/libs/${project.getName()}-${version}.jar")
}

artifact androidSourcesJar

pom {
name = PUBLISH_ARTIFACT_ID
description = 'Reactive implementation of Presentation Model pattern in Android'
url = 'https://github.com/dmdevgo/RxPM'
licenses {
license {
name = 'MIT'
url = 'https://github.com/dmdevgo/RxPM/blob/develop/LICENSE'
}
}
developers {
developer {
id = 'dmdev'
name = 'Dmitriy Gorbunov'
email = '[email protected]'
}
developer {
id = 'jeevuz'
name = 'Vasili Chyrvon'
email = '[email protected]'
}
}
scm {
connection = 'scm:[email protected]:dmdevgo/RxPM.git'
developerConnection = 'scm:[email protected]:dmdevgo/RxPM.git'
url = 'https://github.com/dmdevgo/RxPM'
}
withXml {
def dependenciesNode = asNode().appendNode('dependencies')

project.configurations.implementation.allDependencies.each {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
repositories {
maven {
name = "sonatype"

def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl

credentials {
username ossrhUsername
password ossrhPassword
}
}
}
}

signing {
sign publishing.publications
}

0 comments on commit 15a744c

Please sign in to comment.