gpt4 book ai didi

android - 上传到bintray.com的文件有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:01 26 4
gpt4 key购买 nike

我通过the tutorial将我的lib上传到bintray.com,现在在“文件”选项卡中有文件列表。
1)我可以直接将哪个添加到app/libs文件夹
2)上传到bintray.com的文件有什么区别?
3)如何在没有make命令的情况下查找myproject中的文件?

*-javadoc.jar 
*-javadoc.jar.asc
*-sources.jar
*-sources.jar.asc
*.aar
*.aar.asc
*.pom
*.pom.asc

enter image description here

最佳答案

让我们一次回答一个问题:
1)我可以直接将哪个添加到app/libs文件夹
那就是*.aar文件。.aar文件包含编译后的代码和在库中定义的其他资源(例如xml文件)。
aar代表android档案。它是Android的新的二进制格式的库,相当于来自Java世界的*.jar。(见this
不过,它只包含编译后的代码。没有javadoc,没有来源。
2)上传到bintray.com的文件有什么区别?
让我们逐个获取每个文件:
1。<library name>.pom
这是一个XML文件,存储有关库的元数据。
通常,它存储以下内容:
工件的名称(例如mylibrary
发布工件的组织(如
com.myname.mycompany
库的版本(即0.0.4)
packaging-定义二进制文件的文件类型(它是
Android库, 某些Java库等)
库的一个或多个依赖项
POM文件只是maven存储库的标准元数据文件。还有其他类型的存储库,如 Ivy repositories,它们对元数据使用其他xml格式: Ivy.xml files
因为您的存储库是maven存储库,所以元数据存储在 aar文件中。
2。 war
如上所述,它存储编译的Java/KoTKEN代码。还包含各种android资源,如字符串、可绘制文件、布局文件、主题、可设置样式等。
详见 here
三. -pom.xml
存储使用 <library name>.aar工具从代码生成的html文档文件(如果使用kotlin,则存储 library name>-javadoc.jar)。
这只是一个存档,不是可执行文件。你可以用Total Commander或Winrar打开它并检查它的内容。
4。 javadoc
包含库的源。这同样只是一个存档,而不是一个可执行文件。
它包含实际的 dokkalibrary name>-sources.jar文件,并带有注释。拥有这个文件可以让库的客户机正确地看到代码,逐行跳过它,更好地理解代码的作用。
当有人打开库中某个类的文档时,IDE也会读取该文件,以便在IDE中显示该类的文档。如果没有这个文件,他们将不得不使用在线文档或查看 *.java中的文件。
如果您的库不是开源的并且有专有代码,请小心:不要同时发布源代码!
5。 *.kotlin
这是一个由bintray生成的文件,以确保您是上传该文件的人。这就是为什么所有文件都有一个 <library-name>-javadoc.jar响应。
把它看作是每个文件的数字签名。它实际上是由您链接的教程“第3部分”中的步骤创建的。如果跳过第3部分,则不会生成`.asc文件。
3)如何在不使用make命令gradlew bintrayupload的情况下找到myproject中的文件?
<library-name>.<extension>.asc
我假设您正在使用bintray gradle插件,因为您提到了 *.asc任务。
在你的毕业档案里,你应该有这样的东西:

publishing {
publications {
MyPublicationName(MavenPublication) {
...
}
}
}

这将定义一个名为 *.pom的发布对象。
多亏了bintray gradle插件,您应该有以下任务可用: bintrayUpload
因此,要生成 MyPublicationName,必须运行:
./gradle generatePomFileForMyPublicationNamePublication

用为出版物定义的名称替换 generatePomFileForMyPublicationNamePublication
*.pom
./gradle :moduleName:assembleRelease

只需用库模块的名称替换 MyPublicationName
*.aar
您需要定义一个将源文件归档到jar下的任务。我的看起来是这样的:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

然后你可以打电话给:
./gradle :moduleName:sourcesJar

如前所述,用库模块的名称替换 moduleName
*-sources.jar
通常需要为此定义两个任务:
在类上调用 moduleName工具的一个任务,从代码中的文档生成html文档文件。
第二个任务是获取html文件并将它们打包成 *-javadoc.jar文件(就像我们对sources.jar文件所做的那样)
我的设置如下所示:
//generates HTML files from the documentation present in your source files
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
failOnError false
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

//takes the generated html documentation files, and archives them in a jar
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

然后调用:
./gradle :moduleName:javadocJar

你准备好了!另外,用库模块的名称替换 javadoc
.jar
这些文件实际上是在您上传文件后由bintray生成的。不需要在本地生成它们。
希望这有帮助!

关于android - 上传到bintray.com的文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com