【问题标题】:Use Gradle Project Extension Properties In Configuration Phase在配置阶段使用 Gradle 项目扩展属性
【发布时间】:2014-04-28 23:32:46
【问题描述】:

在编写自定义 Gradle 插件时,如何在自定义插件的配置阶段访问消费 build.gradle 中定义的扩展属性?

请参阅以下 MWE。

build.gradle

apply plugin: 'codechecks'

codechecks {
  checkstyleConfig = '/home/user/checkstyle.xml'
}

CodechecksPlugin.groovy

class CodechecksPlugin implements Plugin<Project> {

  void apply(Project project) {
    project.extensions.create('codechecks', CodechecksPluginExtension)
    project.apply( [ plugin: 'checkstyle' ] )

    project.checkstyle {
      configFile = project.codechecks.checkstyleConfig
    }
  }
}

CodechecksPluginExtension.groovy

class CodechecksPluginExtension {
  def checkstyleConfig = 'config/checkstyle/checkstyle.xml'
}

想要的行为:checkstyle 插件使用在 build.gradle codechecks 扩展中定义的配置文件。

实际行为:正在使用 CodechecksPluginExtension 中的默认值,因为尚未评估 build.gradle codechecks 扩展。

我已经尝试将插件中 codechecks 扩展的所有使用放入闭包中,但由于执行阶段的类转换问题,它们无法正确扩展。

感谢您的帮助!

【问题讨论】:

    标签: plugins gradle checkstyle build.gradle


    【解决方案1】:

    project.afterEvaluate 对我有用。
    试试:

    project.afterEvaluate {
        project.checkstyle {
          configFile = project.codechecks.checkstyleConfig
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 2015-09-07
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多