我有一个带有任务的 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()
}
}
myFlags
在插件的扩展中定义。使用插件时,我可以像这样配置它:myPlugin {
myFlags = "-arg1 absolutePathToFile/file1.txt -arg2 absolutePathToFile/file2.txt"
}
我在插件中有一些默认文件
src/main/resources/
文件夹,即src/main/resources/file1.txt
src/main/resources/file2.txt
如果
myFlags == null
然后我想使用资源文件夹中的文件。问题是我不知道如何获得这些文件的正确路径。
如何获取插件资源文件夹中 file1.txt 和 file2.txt 的绝对路径?
最佳答案
绝对路径可以通过main
访问源集 defined在java插件中。
唯一的问题是,通常资源可能有多个源目录,因此在下一个示例中,我将演示如何获取第一个资源目录的绝对路径,在您的情况下,您需要决定如何处理多个资源目录:
if myFlags == null {
def resourcesDir = sourceSets.main.resources.srcDirs.first().absolutePath
myFlags = "-arg1 ${resourcesDir}/file1.txt -arg2 ${resourcesDir}/file2.txt"
}
关于java - 在 Gradle 插件中获取资源文件的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959692/