chrisbanes / gradle-mvn-push

Helper to upload Gradle Android Artifacts to Maven repositories
Apache License 2.0
1.05k stars 283 forks source link

Error:Cannot get property 'main' on null object #54

Closed SharerMax closed 6 years ago

SharerMax commented 7 years ago

I create a android library use Android Stuido, then I ccoy gradle-mvn-push.gradle to my module gradle.build file, but occour a error when I sync gradle project. I try run uploadArchices task in termin, it is occour a same error.

error message:

Error:Cannot get property 'main' on null object

I fount it stoped at task androidJavadocs

task androidJavadocs(type: Javadoc) {
     source = android.sourceSets.main.java.srcDirs
     classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
 }

My gradle file:

apply plugin: 'com.android.library'
apply from: 'config.gradle'
 //apply from: '../gradle-mvn-push.gradle'

   android {
    compileSdkVersion project.ext.android.compileSdkVersion
    buildToolsVersion project.ext.android.buildToolsVersion

    defaultConfig {
        minSdkVersion project.ext.android.minSdkVersion
        targetSdkVersion project.ext.android.targetSdkVersion
        versionCode project.ext.android.versionCode
        versionName project.ext.android.versionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    buildTypes {

        debug {

            buildConfigField 'boolean', 'LOGGER_ENABLE', 'true';
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        release {
            buildConfigField 'boolean', 'LOGGER_ENABLE', 'true';
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    android {
        lintOptions {
            abortOnError false
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project.ext.dependencies.appcompat
    compile project.ext.dependencies.cardview
    compile project.ext.dependencies.logger
    compile project.ext.dependencies.okhttp
    compile project.ext.dependencies.filedownloader
    //    compile project.ext.dependencies.rxjava
    //    compile project.ext.dependencies.retrofit
    //    compile project.ext.dependencies.rxandroid
    compile project.ext.dependencies.gson
    //    compile project.ext.dependencies.coverter_gson
    //    compile project.ext.dependencies.adapter_rxjava
    compile project.ext.dependencies.fresco
    compile project.ext.dependencies.multidex
//    compile project.ext.dependencies.blurry

    //    compile 'com.jakewharton:butterknife:8.4.0'
    //    apt 'com.jakewharton:butterknife-compiler:8.4.0'
    //    provided project.ext.dependencies.auto_value
    //    annotationProcessor project.ext.apt.auto_value
    //    annotationProcessor project.ext.apt.auto_value_parcel
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:2.2.1'
    //    compile 'com.google.auto.value:auto-value:1.3'
}

apply plugin: 'maven'
//apply plugin: 'signing'

def isReleaseBuild() {
    return VERSION_NAME.contains("SNAPSHOT") == false
}

def getReleaseRepositoryUrl() {
    return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
            : "http://localhost:8081/nexus/content/repositories/android_release/"
}

def getSnapshotRepositoryUrl() {
    return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
            : "http://localhost:8081/nexus/content/repositories/android/"
}

def getRepositoryUsername() {
    return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}

def getRepositoryPassword() {
    return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                //                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

                pom.groupId = GROUP
                pom.artifactId = POM_ARTIFACT_ID
                pom.version = VERSION_NAME

                repository(url: getReleaseRepositoryUrl()) {
                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                }
                snapshotRepository(url: getSnapshotRepositoryUrl()) {
                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                }

                pom.project {
                    name POM_NAME
                    packaging POM_PACKAGING
                    description POM_DESCRIPTION
                    //                    url POM_URL

                    //                    scm {
                    //                        url POM_SCM_URL
                    //                        connection POM_SCM_CONNECTION
                    //                        developerConnection POM_SCM_DEV_CONNECTION
                    //                    }
                    //
                    //                    licenses {
                    //                        license {
                    //                            name POM_LICENCE_NAME
                    //                            url POM_LICENCE_URL
                    //                            distribution POM_LICENCE_DIST
                    //                        }
                    //                    }
                    //
                    //                    developers {
                    //                        developer {
                    //                            id POM_DEVELOPER_ID
                    //                            name POM_DEVELOPER_NAME
                    //                        }
                    //                    }
                }
            }
        }
    }

    //    signing {
    //        required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
    //        sign configurations.archives
    //    }

    task androidJavadocs(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }

    task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
        classifier = 'javadoc'
        from androidJavadocs.destinationDir
    }

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

    artifacts {
        archives androidSourcesJar
        archives androidJavadocsJar
    }
}

os version windows 10 android studio 2.2.3 gradle version 2.14.1 android gradle plugin 2.2.3

AlexanderLS commented 6 years ago

@SharerMax It will work with https://github.com/Vorlonsoft/GradleMavenPush. Please read README.md before use it.

SharerMax commented 6 years ago

Thanks for your replay. I have resolve my problem . The variate android is conflict where ext