Nic*_*hek 4 android jar maven bintray jcenter
我通过教程将我的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
Run Code Online (Sandbox Code Playgroud)
我们一次一个地提出问题:
1)我可以直接添加到app/libs文件夹中
那将是*.aar档案.该.aar文件包含您在库中定义的已编译代码和其他资源(例如XML文件).
AAR代表Android档案.它是Android的新二进制格式库,相当于*.jarJava世界的二进制格式.(见这个)
这只包含已编译的代码.没有javadoc,没有消息来源.
2)上传到bintray.com的文件有什么区别?
让我们逐个采取每个文件:
<library name>.pom这是一个存储有关库的元数据的XML文件.
通常,它存储以下内容:
mylibrary)com.myname.mycompany)packaging- 定义二进制文件的文件类型(aar适用于Android库,war适用于某些Java库等)POM文件只是Maven存储库的标准元数据文件.还有其他类型的存储库,例如Ivy存储库,它们使用其他XML格式作为其元数据:Ivy.xml文件.
由于您的存储库是Maven存储库,因此元数据存储在-pom.xml文件中.
<library name>.aar如上所述,这存储了编译的Java/Kotkin代码.还包含各种Android资源,如字符串,Drawables,布局文件,主题,样式等.
详情请见此处.
library name>-javadoc.jar使用该javadoc工具存储从您的代码生成的HTML文档文件(或者dokka如果您使用Kotlin).
这只是一个存档,而不是可执行文件.您可以使用Total Commander或WinRar打开它并检查其内容.
library name>-sources.jar包含库的源代码.这又是一个存档,而不是可执行文件.
它包含您的实际*.java或*.kotlin文件,以及注释.拥有此文件允许您的库的客户端正确地查看您的代码,逐行检查它,并更好地了解您的代码所做的事情.
当有人打开库的类文档时,这也是IDE读取的文件,以便在IDE中显示该类的文档.没有这个文件,他们将不得不使用在线文档或查看文件<library-name>-javadoc.jar.
如果您的库不是开源的并且拥有专有代码,请小心:不要发布源代码!
<library-name>.<extension>.asc这是Bintray生成的文件,用于保证您是上传文件的人.这就是为什么你的所有文件都有一个共同作用的原因*.asc.
可以将其视为每个文件的数字签名.它实际上是由您链接的教程的"第3部分"中的步骤创建的.如果跳过第3部分,则不会生成` .asc文件.
3)如何在没有make命令的情况下在MyProject中查找文件gradlew bintrayUpload?
*.pom我假设您正在使用Bintray Gradle插件,因为您提到了bintrayUpload任务.
在你的gradle文件中的某个地方,你应该有这样的东西:
publishing {
publications {
MyPublicationName(MavenPublication) {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
这定义了一个名为的发布对象MyPublicationName.
感谢Bintray Gradle插件,您应该可以使用以下任务:generatePomFileForMyPublicationNamePublication.
所以要生成*.pom你必须运行:
./gradle generatePomFileForMyPublicationNamePublication
Run Code Online (Sandbox Code Playgroud)
替换MyPublicationName为您为出版物定义的名称.
*.aar./gradle :moduleName:assembleRelease
Run Code Online (Sandbox Code Playgroud)
只需替换moduleName库模块的名称即可.
*-sources.jar您需要定义一个在jar下存档源文件的任务.我看起来如下:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话:
./gradle :moduleName:sourcesJar
Run Code Online (Sandbox Code Playgroud)
和以前一样,替换moduleName为库模块的名称.
*-javadoc.jar您通常需要为此定义2个任务:
javadoc在您的类上调用该工具,从您的代码中的文档生成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
}
Run Code Online (Sandbox Code Playgroud)
然后调用:
./gradle :moduleName:javadocJar
Run Code Online (Sandbox Code Playgroud)
你就定了!另外,请替换moduleName库模块的名称.
*.asc上传文件后,这些文件实际上是由Bintray生成的.没有必要在本地生成它们.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |