首页 文章

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

提问于
浏览
2

我有这个 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 回答

  • 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. Build sources in the buildSrc project"部分 .

相关问题