其他分享
首页 > 其他分享> > android – 上传到bintray.com的文件有什么区别?

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

enter image description here

解决方法:

我们一次一个地提出问题:

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