将 android 库发布到 jcenter 错误 - 将 POM 文件添加到最新版本的包

Publishing android library to jcenter error - Add a POM file to the latest version of your package

我正在尝试使用 Bintray 的网站将我的 Android 库发布到 JCenter。

我使用以下博客文章创建了一个 Maven 样式的 zip 文件,其中包含所有需要的工件:aar、源、javadoc 和 pom 文件:

http://blog.blundell-apps.com/locally-release-an-android-library-for-jcenter-or-maven-central-inclusion/

一切似乎都在创建的 zip 文件中,但在尝试 link 我的包到 JCenter 时仍然出现错误:

Add a POM file to the latest version of your package

我不确定哪里出了问题,因为里面有 pom..

任何想法可能是错误的?

更新:

这是 zip 文件的内容:

com
└───foxxymobile
    └───wearmock
        └───wear-mock
            │   maven-metadata.xml
            │   maven-metadata.xml.md5
            │   maven-metadata.xml.sha1
            │
            └───0.1.0
                    wear-mock-0.1.0-javadoc.jar
                    wear-mock-0.1.0-javadoc.jar.md5
                    wear-mock-0.1.0-javadoc.jar.sha1
                    wear-mock-0.1.0-sources.jar
                    wear-mock-0.1.0-sources.jar.md5
                    wear-mock-0.1.0-sources.jar.sha1
                    wear-mock-0.1.0.aar
                    wear-mock-0.1.0.aar.md5
                    wear-mock-0.1.0.aar.sha1
                    wear-mock-0.1.0.pom
                    wear-mock-0.1.0.pom.md5
                    wear-mock-0.1.0.pom.sha1

这是 POM 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.foxxymobile.wearmock</groupId>
  <artifactId>wear-mock</artifactId>
  <version>0.1.0</version>
  <packaging>aar</packaging>
  <dependencies>
    <dependency>
      <groupId>com.android.support</groupId>
      <artifactId>appcompat-v7</artifactId>
      <version>21.0.3</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

如您所见,pom 位于 zip 内。这就是脚本创建它的方式。

此问题的原因是所有必需的工件都作为未提取的 zip 存档上传。由于这个原因,Bintray 无法找到所需的 POM fie。
manually uploading 内容到 Bintray 时,您可以上传档案并通过选中 "Explode this archive" 复选框来选择提取它。默认情况下未选中此复选框。

我是这样解决的:

manually upload2个文件到Bintray,名称格式如下:

[library name]-[version].[type]

例如:

my-library-name-0.0.3.pom 
my-library-name-0.0.3.aar

文件 my-library-name-0.0.3.pom 是生成文件 [lib 项目文件夹]\build\poms\pom-default.xml 的副本,其中包含依赖项列表和东西。

重要:当我上传 my-library-name-0.0.3.pom 时,系统建议将其放在特定路径中 - 你需要将两者都放在那里的文件。

发布文件后,您应该会在包页面 "Maven build settings (ver: 0.0.3)" 和 maven/gradle 导入详细信息中看到。