将 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 文件:
一切似乎都在创建的 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 导入详细信息中看到。
我正在尝试使用 Bintray 的网站将我的 Android 库发布到 JCenter。
我使用以下博客文章创建了一个 Maven 样式的 zip 文件,其中包含所有需要的工件:aar、源、javadoc 和 pom 文件:
一切似乎都在创建的 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 导入详细信息中看到。