上传到 bintray.com 的文件有什么区别?
What is the difference between Files uploaded to bintray.com?
我通过 the tutorial 将我的库上传到 bintray.com,现在 "Files" 选项卡中存在文件列表。
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)
packaging
- 定义二进制文件的文件类型(它是 aar
Android 图书馆,war
某些 Java 图书馆等)
- 你的库的一个或多个依赖项
POM files are just the standard metadata file for Maven repositories. There are other types of repositories, such as Ivy repositories, which use other XML formats for their metadata: Ivy.xml files.
由于您的存储库是 Maven 存储库,因此元数据存储在 -pom.xml
文件中。
2。 <library name>.aar
如上所述,这存储编译后的 Java/Kotkin 代码。还包含各种 Android 资源,例如字符串、可绘制对象、布局文件、主题、样式等。
有关详细信息,请参阅 here。
3。 library name>-javadoc.jar
存储 HTML 使用 javadoc
工具(或 dokka
如果您使用 Kotlin)从您的代码生成的文档文件。
这只是一个存档,不是可执行文件。您可以使用 Total Commander 或 WinRar 打开它并检查其内容。
4。 library name>-sources.jar
包含您的图书馆的资源。这又只是一个存档,而不是可执行文件。
它包含您实际的 *.java
或 *.kotlin
文件,并附有注释。有了这个文件,您图书馆的客户就可以正确地查看您的代码,逐行检查它,并更好地理解您的代码的作用。
这也是当有人打开您图书馆的 class 的文档时 IDE 读取的文件,向您展示 class 的文档IDE。如果没有此文件,他们将不得不使用联机文档或查看来自 <library-name>-javadoc.jar
.
的文件
如果您的库不是开源的并且有专有代码,请小心:不要同时发布源代码!
5。 <library-name>.<extension>.asc
这是一个由 Bintray 生成的文件,保证您是上传该文件的人。这就是为什么您所有的文件都有一个 *.asc
共同响应者。
将其视为每个文件的数字签名。它实际上是根据您链接的教程 "Part 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 个任务:
- 一项任务在您的 classes 上调用
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 在您上传文件后生成的。无需在本地生成它们。
希望对您有所帮助!
我通过 the tutorial 将我的库上传到 bintray.com,现在 "Files" 选项卡中存在文件列表。
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)
packaging
- 定义二进制文件的文件类型(它是aar
Android 图书馆,war
某些 Java 图书馆等)- 你的库的一个或多个依赖项
POM files are just the standard metadata file for Maven repositories. There are other types of repositories, such as Ivy repositories, which use other XML formats for their metadata: Ivy.xml files.
由于您的存储库是 Maven 存储库,因此元数据存储在 -pom.xml
文件中。
2。 <library name>.aar
如上所述,这存储编译后的 Java/Kotkin 代码。还包含各种 Android 资源,例如字符串、可绘制对象、布局文件、主题、样式等。
有关详细信息,请参阅 here。
3。 library name>-javadoc.jar
存储 HTML 使用 javadoc
工具(或 dokka
如果您使用 Kotlin)从您的代码生成的文档文件。
这只是一个存档,不是可执行文件。您可以使用 Total Commander 或 WinRar 打开它并检查其内容。
4。 library name>-sources.jar
包含您的图书馆的资源。这又只是一个存档,而不是可执行文件。
它包含您实际的 *.java
或 *.kotlin
文件,并附有注释。有了这个文件,您图书馆的客户就可以正确地查看您的代码,逐行检查它,并更好地理解您的代码的作用。
这也是当有人打开您图书馆的 class 的文档时 IDE 读取的文件,向您展示 class 的文档IDE。如果没有此文件,他们将不得不使用联机文档或查看来自 <library-name>-javadoc.jar
.
如果您的库不是开源的并且有专有代码,请小心:不要同时发布源代码!
5。 <library-name>.<extension>.asc
这是一个由 Bintray 生成的文件,保证您是上传该文件的人。这就是为什么您所有的文件都有一个 *.asc
共同响应者。
将其视为每个文件的数字签名。它实际上是根据您链接的教程 "Part 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 个任务:
- 一项任务在您的 classes 上调用
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 在您上传文件后生成的。无需在本地生成它们。
希望对您有所帮助!