android – 上传到bintray.com的文件有什么区别?
作者:互联网
我在the tutorial年将我的lib上传到bintray.com,现在在“文件”选项卡中存在文件列表.
1)我可以直接添加到app / libs文件夹中
2)上传到bintray.com的文件有什么区别?
3)如何在没有make命令的情况下在MyProject中查找文件gradlew bintrayUpload?
*-javadoc.jar
*-javadoc.jar.asc
*-sources.jar
*-sources.jar.asc
*.aar
*.aar.asc
*.pom
*.pom.asc
解决方法:
我们一次一个地提出问题:
1) Which one can I add directly to app/libs folder
那将是* .aar文件. .aar文件包含您编译的代码&您在库中定义的其他资源(例如XML文件).
AAR代表Android档案.它是Android的新二进制格式库,相当于Java世界的* .jar. (见this)
这只包含已编译的代码.没有javadoc,没有消息来源.
2) What is the difference between Files uploaded to bintray.com?
让我们逐个采取每个文件:
1.< library name> .pom
这是一个存储有关库的元数据的XML文件.
通常,它存储以下内容:
>你的工件的名称(例如mylibrary)
>发布工件的组(即组织)(例如
com.myname.mycompany)
>你的图书馆版本(即0.0.4)
>打包 – 定义二进制文件的文件类型(它是…
Android库,某些Java库的战争等)
>您的库的一个或多个依赖项
POM文件只是Maven存储库的标准元数据文件.还有其他类型的存储库,例如Ivy repositories,它们使用其他XML格式作为其元数据:Ivy.xml files.
由于您的存储库是Maven存储库,因此元数据存储在-pom.xml文件中.
2.< library name> .aar
如上所述,这存储了编译的Java / Kotkin代码.还包含各种Android资源,如字符串,Drawables,布局文件,主题,样式等.
有关详细信息,请参见here.
3.库名称> -javadoc.jar
使用javadoc工具存储从您的代码生成的HTML文档文件(如果您使用Kotlin,则存储dokka).
这只是一个存档,而不是可执行文件.您可以使用Total Commander或WinRar打开它并检查其内容.
4.库名称> -sources.jar
包含库的源代码.这又是一个存档,而不是可执行文件.
它包含您的实际* .java或* .kotlin文件,以及注释.拥有此文件允许您的库的客户端正确地查看您的代码,逐行检查它,并更好地了解您的代码所做的事情.
当有人打开库的类文档时,这也是IDE读取的文件,以便在IDE中显示该类的文档.如果没有此文件,他们将不得不使用在线文档或查看< library-name> -javadoc.jar中的文件.
如果你的图书馆不是开源的话,要小心.有专有代码:不要发布消息来源!
5.< library-name>.< extension> .asc
这是Bintray生成的文件,用于保证您是上传文件的人.这就是为什么你的所有文件都有一个* .asc corespondent.
可以将其视为每个文件的数字签名.它实际上是由您链接的教程的“第3部分”中的步骤创建的.如果跳过第3部分,则不会生成`.asc文件.
3) How to find the files in MyProject without make command gradlew bintrayUpload?
* .pom
我假设您正在使用Bintray Gradle插件,因为您提到了bintrayUpload任务.
在你的gradle文件中的某个地方,你应该有这样的东西:
publishing {
publications {
MyPublicationName(MavenPublication) {
...
}
}
}
这定义了一个名为MyPublicationName的发布对象.
感谢Bintray Gradle插件,您应该可以使用以下任务:generatePomFileForMyPublicationNamePublication.
因此要生成* .pom,您必须运行:
./gradle generatePomFileForMyPublicationNamePublication
将MyPublicationName替换为您为发布定义的名称.
* .aar
./gradle :moduleName:assembleRelease
只需将moduleName替换为库模块的名称即可.
* -sources.jar
您需要定义一个将源文件归档到jar下的任务.我看起来如下:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
然后你可以打电话:
./gradle :moduleName:sourcesJar
和以前一样,将moduleName替换为库模块的名称.
* -javadoc.jar
您通常需要为此定义2个任务:
>一个在类上调用javadoc工具的任务,用于从代码中的文档生成HTML文档文件.
>第二个任务,它接收HTML文件并将它们捆绑在.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
你就定了!另外,将moduleName替换为库模块的名称.
* .ASC
上传文件后,这些文件实际上是由Bintray生成的.没有必要在本地生成它们.
希望这可以帮助!
标签:android,maven,jar,jcenter,bintray 来源: https://codeday.me/bug/20190611/1215855.html