gradle:封装自定义dsl的最佳方法

时间:2014-11-15 05:20:02

标签: java groovy gradle encapsulation

my screencast,我希望我的aExtFunc可以在任何项目的build.gradle中工作,但是intellij idea raise

Cannot resolve symbol 'gradleExt'

我的问题是:如何修复它。

1 个答案:

答案 0 :(得分:0)

定义对项目的依赖

dependencies{
  compile project(':gradleExt')
}

并不意味着您可以在构建脚本中使用项目内容:

task ATask() {
  new gradleExt.Ext().aExtFunc()
}

您可能需要直接在实现所需行为的build.gradle文件中创建新的groovy类。或者,如果您确实希望在不同的位置实现实现,则需要将类路径依赖性添加到buildScript{}块中。请参阅有关实施自定义任务的文档:

  

http://www.gradle.org/docs/current/userguide/custom_tasks.html

如果您想要自定义dsl,那么自定义gradle插件可能就是您要找的

  

http://www.gradle.org/docs/current/userguide/custom_plugins.html

另外请仔细检查多项目构建上的文档(如果这可能对您有用),不能从" 我的截屏视频"你的整体gradle设置是什么。我会发布链接,但我没有足够的声誉。