如何使用jitpack提供AAR文件

时间:2019-02-23 05:43:47

标签: android jitpack

我想发布一个我一直在使用jitpack进行工作的android库。但是我想这样做而不发布源代码。我不希望jitpack构建它,我将构建(AAR文件)的输出上传到github,我想jitpack仅提供这些文件。

https://jitpack.io/docs/PRIVATE/#artifact-sharing上的说明 不适用于用户界面,因为UI不再具有允许共享工件的设置选项卡。

还有,这样做有更好的方法吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我最近解决了这个问题(示例 here),主要是通过教程 here

步骤:

  1. 准备 aar 文件。您可以使用“assembleRelease”gradle 任务来完成此操作。您也应该考虑添加 Proguard 规则。您可能想要添加的一些规则的示例 here

  2. 创建一个新的 Github 存储库,并将 aar 文件上传到那里。

  3. 将 2 个新文件放入存储库。一个是 jitpack.yml(在“-”之前有 2 个空格非常重要,而不是文章上写的):

install: 
  - FILE="-Dfile=mylibrary-release.aar" 
  - mvn install:install-file $FILE -DgroupId=com.lb.sdktest -DartifactId=test -Dversion=1.0 -Dpackaging=aar -DgeneratePom=true
  1. 另一个是pom.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
             http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.lb.sdktest</groupId>
   <artifactId>test</artifactId>
   <version>1.0</version>
</project>

您应该根据您的意愿更改“c​​om.lb.sdktest”和“test”,但我认为它无论如何都会被忽略,因为它会根据它的存在位置在 Jitpack 上自动更改(在我的示例中)更改为 implementation 'com.github.AndroidDeveloperLB:SdkTest:7' )

  1. 在 Github 上,创建一个新版本,转到 Jitpack,将 URL 粘贴到那里(例如我所做的 here),等待版本出现,然后按“GET”按钮。

就是这样。您将获得有关如何使用新依赖项的 SDK 用户的新说明!

编辑:虽然这工作正常,但我发现了一些重要问题,如果有人知道如何解决,将不胜感激:

  1. 那些额外的文件是什么意思?为什么那里的值似乎被忽略了?

  2. 我注意到 SDK 用户必须添加 aar 使用的所有依赖项。怎么来的?我在某处读过关于 maven 插件的内容,它是生成 pom 文件的那个,它也添加了依赖项。但是我如何才能正确地将它用于 Jitpack?我尝试使用它,确实它生成了一个似乎具有依赖关系的 POM 文件。我试图遵循所有可能的提示和指南,但仍然未能正确使用它。写了这个here

  3. 尽管我添加了许多 KotlinDocs(JavaDocs,但适用于 Kotlin),但在生成 AAR 文件的过程中,它们被完全删除。我不知道如何以任何方式保存它们。选择手动生成它(通过 IDE 有一种生成 JavaDocs 的方法),它没有成功,因为它说没有 Java 文件。我如何生成这些内容并将其提供给 SDK 用户?

  4. 当它变得模糊时,我注意到一件奇怪的事情:它删除了我制作的 Retrofit 类的一些重要部分。我写过关于这个 here 的文章,我只是想知道这是解决它的最佳方法,还是有更好的方法。