con*_*ile 6 java groovy android gradle build.gradle
我有一个 Gradle 插件,任务如下:
@TaskAction
def nyTask() {
def myFlags = project.pluginConfig.myFlags
if myFlags == null {
myFlags = "-arg1 absolutePathToFile/file1.txt -arg2 absolutePathToFile/file2.txt"
// *** this is the part I don't know ***
}
project.exec {
executable aCommand
args myFlags.split()
}
}
Run Code Online (Sandbox Code Playgroud)
myFlags在插件的扩展中定义。使用该插件时,我可以将其配置为:
myPlugin {
myFlags = "-arg1 absolutePathToFile/file1.txt -arg2 absolutePathToFile/file2.txt"
}
Run Code Online (Sandbox Code Playgroud)
我的插件src/main/resources/文件夹中有一些默认文件,即
src/main/resources/file1.txt
src/main/resources/file2.txt
Run Code Online (Sandbox Code Playgroud)
如果myFlags == null那么我想使用资源文件夹中的文件。
问题是我不知道如何获取这些文件的正确路径。
如何获取插件资源文件夹中file1.txt和file2.txt的绝对路径?
绝对路径可以通过java插件中定义的mainsourceSet访问。
唯一的问题是,通常可能有多个资源源目录,因此在下一个示例中,我演示如何获取第一个资源目录的绝对路径,在您的情况下,您需要决定如何处理多个资源目录:
if myFlags == null {
def resourcesDir = sourceSets.main.resources.srcDirs.first().absolutePath
myFlags = "-arg1 ${resourcesDir}/file1.txt -arg2 ${resourcesDir}/file2.txt"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4219 次 |
| 最近记录: |