bintray: Unable to upload files: Maven group, artifact or version defined in the pom file do not match
Asked Answered
L

2

9

I'm trying to create a maven library using Android Studio and bintray but I can't get it working. When I try to upload the lib using gradle bintrayUpload I allways get the following error:

Could not upload to 'https://api.bintray.com/content/company/maven/company-simplename-lib/simplename/company-simplename-lib/lib/0.0.1/lib-0.0.1.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'company-simplename-lib/lib/0.0.1/lib-0.0.1.pom']

This happens when I try to follow the example bintray has in their github repo.

I have changed my library build.gradle (not the root) to the following:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}

plugins {
    id "com.jfrog.bintray" version "1.4"
}

version = '0.0.1'

allprojects {
    repositories {
        jcenter()
    }
    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName '0.0.1'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'

}

install {
    repositories.mavenInstaller {
        pom.project {
            name 'EasyGoogle'
        description 'A wrapper library for basic functions of Google Play Services APIs'
        url 'https://github.com/googlesamples/easygoogle'
        inceptionYear '2015'

        packaging 'aar'
        groupId 'pub.devrel'
        artifactId 'android-maven-example'
        version '0.1'

        licenses {
            license {
                name 'The Apache Software License, Version 2.0'
                url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                distribution 'repo'
            }
        }
        scm {
            connection 'https://github.com/googlesamples/easygoogle.git'
            url 'https://github.com/googlesamples/easygoogle'

        }
        developers {
            developer {
                name 'Google'
            }
        }
    }
}

bintray {
    user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
    key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
    configurations = ['archives']
    pkg {
        repo = 'maven'
        name = 'company-simplename-lib'
        userOrg = user
        licenses = ['Apache-2.0']
        vcsUrl = 'http://example.com/android/company-simplename-lib.git'
        version {
            name = 'simplename'
            desc = 'test build'
            vcsTag = '0.0.1'
            attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}

Is someone able to see what I'm doing wrong? Becasue I can't and I can't find any good documentation about this either.

Livi answered 12/11, 2015 at 9:22 Comment(0)
L
4

I got it working by removing the install part from the gradle file so it looks like this:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}

plugins {
    id "com.jfrog.bintray" version "1.4"
}

version = '0.0.4'

allprojects {
    repositories {
        jcenter()
    }
    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName '0.0.4'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
}

bintray {
    user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
    key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
    configurations = ['archives']
    pkg {
        repo = 'maven'
        name = 'company-simplename-lib'
        userOrg = user
        licenses = ['Apache-2.0']
        vcsUrl = 'http://gitlab.company-servic.es/android/company-simplename-lib.git'
        version {
            name = 'simplename'
            desc = 'test build'
            vcsTag = '0.0.4'
            attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}
Livi answered 12/11, 2015 at 12:5 Comment(2)
How do you build a POM file if you have no install tag?Narrowminded
This is correct if you have your publishing methods setup correctly and you do not want your module name to be the same as your artifactIdAnomaly
S
12

Please go through below blog , it clearly explain everything.

http://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en

If you still face issue of uploading pom file then make sure libraryName , artifact and module name should be same.

Shuntwound answered 5/1, 2016 at 10:26 Comment(0)
L
4

I got it working by removing the install part from the gradle file so it looks like this:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}

plugins {
    id "com.jfrog.bintray" version "1.4"
}

version = '0.0.4'

allprojects {
    repositories {
        jcenter()
    }
    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName '0.0.4'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
}

bintray {
    user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
    key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
    configurations = ['archives']
    pkg {
        repo = 'maven'
        name = 'company-simplename-lib'
        userOrg = user
        licenses = ['Apache-2.0']
        vcsUrl = 'http://gitlab.company-servic.es/android/company-simplename-lib.git'
        version {
            name = 'simplename'
            desc = 'test build'
            vcsTag = '0.0.4'
            attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}
Livi answered 12/11, 2015 at 12:5 Comment(2)
How do you build a POM file if you have no install tag?Narrowminded
This is correct if you have your publishing methods setup correctly and you do not want your module name to be the same as your artifactIdAnomaly

© 2022 - 2024 — McMap. All rights reserved.