4

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

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

另外,有没有更好的方法来做到这一点?

任何帮助,将不胜感激。

4

1 回答 1

3

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

步骤:

  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
  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>

您应该根据需要更改“com.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 类的一些重要部分。我在这里写过这个,我只是想知道这是否是解决它的最佳方法,或者有更好的方法。

于 2021-03-14T08:37:36.967 回答