如何将Android库发布到Jfrog Bintray?

6

我正在开发Android库,我已经完成了库的工作并生成了aar和jar文件,但是当我尝试发布二进制文件时,会收到一个错误消息。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mylittlelibrary:bintrayUpload'.
> Could not create package 'abcd/maven/helloaar.example.com.mylittlelibrary': HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]

* Try:
  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 5.391 secs
Could not create package 'abcd/maven/helloaar.example.com.mylittlelibrary': HTTP/1.1 404 Not    Found [message:Repo 'maven' was not found]
2:41:59 AM: External task execution finished 'bintrayUpload'.

build.gradle

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

repositories {
   mavenCentral()
}

android {
compileSdkVersion 24
buildToolsVersion "24.0.0"

defaultConfig {
    minSdkVersion 17
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0-beta1'
}

 group = 'helloaar.example.com.mylittlelibrary'
 version = '1.0.2'

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

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

 task generateJavaDocsJar(type: Jar) {
     from generateJavaDocs.destinationDir
     classifier 'javadoc'
 }
 generateJavaDocsJar.dependsOn generateJavaDocs

bintray {
    user = 'abcd'
    key = '1234567890fghgfhffjfgjfjfjrtyjtkjg'
    pkg {
       repo = 'maven'
       name = 'helloaar.example.com.mylittlelibrary'

    version {
        name = '1.0.2'
        desc = 'My test upload'
        released  = new Date()
        vcsTag = '1.0.2'
    }

    licenses = ['Apache-2.0']
    vcsUrl = ''
    websiteUrl = ''
}
configurations = ['archives']
}

artifacts {
   archives generateJavaDocsJar
   archives generateSourcesJar
}

这里输入图片描述

请仔细阅读我的脚本并给我一些解决方案。


你的账户下是否有一个名为maven的代码仓库? - galusben
嘿,谢谢,问题解决了...我在我的Maven账户下创建了一个名称。 - deeptimancode
@DeeptimanPattnaik - 我只能在我的账户中创建组织,然后创建存储库。我已经这样做了,但没有帮助我。有什么帮助吗? - user1051505
逐步说明:https://dev59.com/jpjga4cB1Zd3GeqPNaii#43951025 - Suragch
2个回答

2
在发布到Bintray之前,您必须拥有稳定的代码构建版本。在Bintray上的层次结构如下: 用户 --> 存储库 --> 软件包 --> 版本 --> 构件 这意味着存储库应该在软件包之上,按照这种层次结构排列。
gradle.build文件中以下行可能是错误的主要原因:
pkg {
    repo = 'maven'
    name = 'helloaar.example.com.mylittlelibrary'
}

层次结构有误。

在使用maven时,您应该检查是否符合maven约定,否则Maven Build将无法成功。 Bintray上Maven存储库的解释。

您遇到的错误:

HTTP/1.1 404 Not Found [message:Repo 'maven' was not found] 

这意味着您在Bintray上没有一个称为maven的存储库。所有软件包版本和文件都应该在您创建的Bintray存储库下。
如需更多详细信息或支持问题,您可以使用Bintray支持团队,他们适用于所有Bintray用户,并可帮助您解决与任何JFrog平台服务(如Bintray、Artifactory、Mission control和Xray)相关的任何问题。请访问Bintray支持获取帮助。

0
pkg {
    repo = 'maven'
    name = 'helloaar.example.com.mylittlelibrary'

    version {
        name = '1.0.2'
        desc = 'My test upload'
        released  = new Date()
        vcsTag = '1.0.2'
    }

Could not create package 'abcd/maven/helloaar.example.com.mylittlelibrary': HTTP/1.1 404 Not    Found [message:Repo 'maven' was not found]
2:41:59 AM: External task execution finished 'bintrayUpload'.

'abcd/maven/helloaar.example.com.mylittlelibrary'

  • abcd : bintray 用户名
  • maven : pkg { repo = 'maven' } 由您设置,例如当设置 repo = 'android-lib' 时,'abcd/android-lib/helloaar.example.com.mylittlelibrary'
  • helloaar.example.com.mylittlelibrary : pkg{ name = 'helloaar.example.com.mylittlelibrary'

-

  • 首先:检查您的Bintray帐户,
  • 其次:创建存储库,
  • 第三步:修改您的pkg repo = '从第二步输入制作存储库名称' build.gradle
  • 最后:再次构建

希望对您有所帮助,祝您拥有愉快的一天。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接