使用位于另一个文件夹中的.groovy文件类(Gradle)

时间:2012-07-20 13:09:44

标签: groovy gradle

我有这个 build.gradle 文件可以正常工作:

class Utils  {
  def doit(){
    println "hi from utils"
  }
}

task hello << {
  def utils = new Utils()
  utils.doit();
}

如果我将class / .groovy文件移动到这样的子文件夹:

test
 -> groovy
     -> Utils.groovy
 -> build.gradle

并将build.gradle文件修改为:

dependencies {
    runtime fileTree(dir: 'groovy', include: '*.groovy')
}

task hello << {
  def utils = new Utils()
  utils.doit();
}

无法再找到Utils类:

...unable to resolve class Utils

我假设应将子文件夹 groovy 添加为.gradle文件中类路径/依赖项的导入/条目。我看过这些页面:

http://gradle.org/docs/current/userguide/dependency_management.html http://gradle.org/docs/current/userguide/custom_plugins.html http://gradle.org/docs/current/userguide/custom_tasks.html

但无法找到任何描述如何在.gradle文件中导入.groovy文件的文档。我错过了什么页面描述了这个简单的功能?

1 个答案:

答案 0 :(得分:4)

如果您将build.gradle更改为

task hello << {
  def utils = new Utils()
  utils.doit();
}

然后代替

test
 -> groovy
     -> Utils.groovy
 -> build.gradle

Utils.groovy文件移至buildSrc/src/main/groovy,如下所示:

test
 -> buildSrc
     -> src
         -> main
             -> groovy
                 -> Utils.groovy
 -> build.gradle

并且gradle应该自动拾取它。

有关详细信息,请参阅the documentation中的“41.4。在buildSrc项目中构建源代码”部分。