我通过使用 Gradle 构建 aar
导出 Android 库,并且我对 aar
中的 jar
有要求:基本上我需要 jar反射(reflect)项目中已存在的以下文件结构(jpeg 文件应在 .class
文件旁边的 java 包内):
project_name
|
module_name
|
src
|
main
|
java
|
package_to_include
|
java_files
jpeg_files
package_to_exclude
这是来自 build.gradle
脚本的相关部分:
apply plugin: 'com.android.library'
android {
...
sourceSets {
main {
java {
srcDir 'src/main/java'
exclude 'package_to_exclude/**'
resources.includes = [ 'package_to_include/*.jpeg' ]
}
resources {
srcDir 'src/../lib'
}
}
}
}
结果:exclude 部分起作用,include 不起作用:在 package_to_include 的 jar 中,只有 java 源代码文件作为 .class
文件。 jpeg 根本不在 jar 里。
顺便说一下,我对双星号 (**) 运算符不是很熟悉。也许这就是解决的方向?
谢谢,
最佳答案
您怀疑 **
是缺少的组件。猜测您的包含路径可能缺少 package_to_include
的 src/main/java
前缀。
**
表示任意文件夹。例如:
src/main/java/package_to_include/image.jpg
src/main/res/image.jpg
// both would match
**/image.jpg
这行也很奇怪 srcDir 'src/../lib'
因为它和 srcDir 'lib'
一样
关于Android Gradle 库构建 : Include & exclude files from the jar inside the generated aar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208453/