如何使用 jitpack 提供 AAR 文件

Tab*_*ran 8 android jitpack

我想发布一个我一直在使用 jitpack 开发的 android 库。但我想在不发布源代码的情况下做到这一点。我不想让 jitpack 构建它,我将构建的输出(AAR 文件)上传到 github,我想让 jitpack 只提供这些文件。

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

另外,有更好的方法吗?

任何帮助,将不胜感激。

and*_*per 5

我实际上最近解决了这个问题(示例在这里),主要是通过这里的教程。

步骤:

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

  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
Run Code Online (Sandbox Code Playgroud)
  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>
Run Code Online (Sandbox Code Playgroud)

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

  1. 在 Github 上,创建一个新版本,转到 Jitpack,将 URL 粘贴到此处(此处是我所做的示例),稍等一下版本出现,然后按“GET”按钮。

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

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

  1. 那些额外的文件有什么意义?为什么那里的价值观似乎被忽略了?

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

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

  4. 当它变得模糊时,我注意到一件奇怪的事情:它删除了我制作的 Retrofit 类的一些重要部分。我已经在这里写过这个问题,我只是想知道这是否是解决它的最佳方法,或者有更好的方法。