maven.gradle
apply plugin: 'maven'
apply plugin: 'signing'
def sonatypeRepositoryURL
def mavenLocalFlag = hasProperty('mavenLocal') ? mavenLocal.toBoolean() : true
def timestampMsg = " at " + getDate()
if (isReleaseBuild()) {
println 'PROCESSING MAVEN ' + (mavenLocalFlag ? 'LOCAL' : 'REMOTE') + ' RELEASE BUILD VERSION ' + project.VERSION_NAME + timestampMsg +'...'
sonatypeRepositoryURL = hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
println 'PROCESSING MAVEN ' + (mavenLocalFlag ? 'LOCAL' : 'REMOTE') + ' SNAPSHOT BUILD VERSION ' + project.VERSION_NAME + timestampMsg + '...'
sonatypeRepositoryURL = hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
: "https://oss.sonatype.org/content/repositories/snapshots/"
}
def getRepositoryPassword() {
return hasProperty('sonatypePassword') ? sonatypePassword : ""
}
def getRepositoryUsername() {
return hasProperty('sonatypeUsername') ? sonatypeUsername : ""
}
afterEvaluate { project ->
uploadArchives {
repositories {
if (mavenLocalFlag) {
mavenDeployer {
pom.artifactId = POM_SETTING_ARTIFACT_ID
repository(url: mavenLocal().url)
pom.project {
name POM_SETTING_NAME
packaging POM_SETTING_PACKAGING
description POM_SETTING_DESCRIPTION
url POM_SETTING_URL
scm {
url POM_SETTING_SCM_URL
connection POM_SETTING_SCM_CONNECTION
developerConnection POM_SETTING_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_SETTING_LICENCE_NAME
url POM_SETTING_LICENCE_URL
distribution POM_SETTING_LICENCE_DIST
}
}
developers {
developer {
id POM_SETTING_DEVELOPER_ID
name POM_SETTING_DEVELOPER_NAME
}
}
}
}
} else {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
pom.artifactId = POM_SETTING_ARTIFACT_ID
repository(url: sonatypeRepositoryURL) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
pom.project {
name POM_SETTING_NAME
packaging POM_SETTING_PACKAGING
description POM_SETTING_DESCRIPTION
url POM_SETTING_URL
scm {
url POM_SETTING_SCM_URL
connection POM_SETTING_SCM_CONNECTION
developerConnection POM_SETTING_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_SETTING_LICENCE_NAME
url POM_SETTING_LICENCE_URL
distribution POM_SETTING_LICENCE_DIST
}
}
developers {
developer {
id POM_SETTING_DEVELOPER_ID
name POM_SETTING_DEVELOPER_NAME
}
}
}
}
}
}
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
task androidJavadocs(type: Javadoc) {
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
nexusStaging {
username getRepositoryUsername()
password getRepositoryPassword()
}
}
def getDate() {
return new Date().format('yyyy-MM-dd HH:mm:ss')
}