【问题标题】:Get absolute path of Resource File in a Gradle Plugin?在 Gradle 插件中获取资源文件的绝对路径?
【发布时间】:2015-06-20 23:02:23
【问题描述】:

我有一个带有任务的 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的绝对路径?

【问题讨论】:

标签: java android groovy gradle build.gradle


【解决方案1】:

绝对路径可以通过java插件中的mainsourceSetdefined访问。

唯一的问题是,通常资源可能有多个源目录,因此在下一个示例中,我将演示如何获取第一个资源目录的绝对路径,在您的情况下,您需要决定如何处理更多然后是一个资源目录:

  if myFlags == null {
      def resourcesDir = sourceSets.main.resources.srcDirs.first().absolutePath
      myFlags = "-arg1 ${resourcesDir}/file1.txt -arg2 ${resourcesDir}/file2.txt"
  }

【讨论】:

    猜你喜欢
    • 2020-11-26
    • 2023-03-15
    • 2012-04-24
    • 2021-11-15
    • 2010-09-18
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多