![](/img/trans.png)
[英]Android - how to exclude jar files of Library in our application?
[英]How to generate .jar of android library with *class files?
目前我的 gradle 任务看起来像:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
...
}
task sourcesJar(type: Jar) {
getArchiveClassifier().set('sources')
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives sourcesJar
}
但是结果 jar artifact 有*.java
和*.kt
文件,但是如何生成带有*.class
文件的 jar artifact?
根据您的屏幕截图,您正在打开xxx-sources.jar
文件。 当然它里面只包含Java源文件。 这是您配置如下的正确结果:
task sourcesJar(type: Jar) {
getArchiveClassifier().set('sources')
from android.sourceSets.main.java.sourceFiles
}
您的类文件通常被分隔在另一个 jar 文件中。 您没有指定您执行的任务是什么。 所以让我们假设你运行默认的 Android 构建任务,它会生成aar
文件,它应该包含你的模块类文件。 您可以解压sapi-1.6.aar
进行检查。
您也可以参考此 文档。
更新:
您没有说明为什么需要Jar文件而不是AAR文件,假设您想在其他项目中使用Jar文件,那么您需要使用其他gradle插件来构建(不能使用android
gradle插件),它可以是java
或base
gradle 插件。 有人回答说,你可以在 aar 文件中找到 jar 文件,你可以检查这个。
从命令行,您只需键入:
jar uf0 path_to_your_jar_file\yourJarFile.jar path_to_your_classes\*.class
当然,如果您不想添加该目录中的所有类,您可以使用类名而不是通配符 (*)。
jar --help
会给你更多的选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.