Ale*_*hyn 5 android gradle android-gradle-plugin
我正在为一个框架编写一个构建系统,可以通过用户(开发人员)的插件进行扩展.我的问题是我不能用掩码包含所有的aar文件.例如,我可以包含所有这样的jar文件:
compile fileTree(dir: 'libs', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)
但如果我包含所有这样的aar文件:
compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Only Jar-type local dependencies are supported. Cannot handle: /path/to/file.aar
Run Code Online (Sandbox Code Playgroud)
但是,可以单独包含每个文件,如下所示:
compile (name:'myfile', ext:'aar')
Run Code Online (Sandbox Code Playgroud)
作为一种解决方法,在构建期间,我将需要列出'libs'目录中的文件,手动将所有库插入我的build.gradle并保持同步(或每次重写).这是一种做法的hackish方式,因此我想知道是否有更好的方法.也许有一个gradle脚本可以自动执行或者一些gradle beta支持这个:
compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
Run Code Online (Sandbox Code Playgroud)
mix*_*xel 17
首先添加flatDir存储库:
repositories {
flatDir {
dirs 'libs'
}
}
Run Code Online (Sandbox Code Playgroud)
然后在dependencies节后添加:
fileTree(dir: 'libs', include: '**/*.aar')
.each { File file ->
dependencies.add("compile", [
name: file.name.lastIndexOf('.').with { it != -1 ? file.name[0..<it] : file.name },
ext: 'aar'
])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12345 次 |
| 最近记录: |