我想发布一个我一直在使用 jitpack 开发的 android 库。但我想在不发布源代码的情况下做到这一点。我不希望 jitpack 构建它,我将构建的输出(AAR 文件)上传到 github,我希望 jitpack 只为这些文件提供服务。
https://jitpack.io/docs/PRIVATE/#artifact-sharing上的说明 不适用,因为 UI 不再具有允许共享工件的设置选项卡。
另外,有没有更好的方法来做到这一点?
任何帮助,将不胜感激。
我想发布一个我一直在使用 jitpack 开发的 android 库。但我想在不发布源代码的情况下做到这一点。我不希望 jitpack 构建它,我将构建的输出(AAR 文件)上传到 github,我希望 jitpack 只为这些文件提供服务。
https://jitpack.io/docs/PRIVATE/#artifact-sharing上的说明 不适用,因为 UI 不再具有允许共享工件的设置选项卡。
另外,有没有更好的方法来做到这一点?
任何帮助,将不胜感激。
我最近实际上解决了这个问题(这里的示例),主要是通过这里的教程。
步骤:
准备 aar 文件。这可以使用“assembleRelease”gradle 任务来完成。您也应该考虑添加 Proguard 规则。此处是您可能要添加的一些规则的示例。
创建一个新的 Github 存储库,并在那里上传 aar 文件。
将 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
<?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'
)
而已。您将获得 SDK 用户有关如何使用新依赖项的新说明!
编辑:虽然这工作正常,但我发现了一些重要问题,如果有人知道如何解决,将不胜感激:
那些多余的文件是什么意思?为什么那里的价值观似乎被忽略了?
我注意到 SDK 用户必须添加 aar 正在使用的所有依赖项。怎么来的?我在某处读到了 maven 插件,它是生成 pom 文件的那个,它也添加了依赖项。但是我怎样才能将它正确地用于 Jitpack?我尝试使用它,它确实生成了一个似乎具有依赖关系的 POM 文件。我尝试遵循所有可能的提示和指南,但仍然未能正确使用它。写到这里。
尽管我添加了许多 KotlinDocs(JavaDocs,但用于 Kotlin),但在生成 AAR 文件的过程中,它们会被完全删除。我不知道如何以任何方式保存它们。选择手动生成它(通过 IDE 有一种生成 JavaDocs 的方法),它没有成功,因为它说没有 Java 文件。我怎样才能生成它们并使它们可供 SDK 用户使用?
随着它变得模糊,我注意到一件奇怪的事情:它删除了我制作的 Retrofit 类的一些重要部分。我在这里写过这个,我只是想知道这是否是解决它的最佳方法,或者有更好的方法。