OpenSRP/opensrp-client-anc

View on GitHub
maven.gradle

Summary

Maintainability
Test Coverage
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')
}