3

我无法在我的 gradle 构建中触发 buildStarted,不确定我做错了什么。

我有一个像这个版本'1.0'这样的根项目gradle文件

buildscript {
    repositories {
        maven { url 'http://repo.jfrog.org/artifactory/gradle-plugins' }
    }
    dependencies {
        classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.1.0')
    }
}

gradle.buildStarted {
    println "buildStart"
}

gradle. buildFinished {
    println "buildFinished"
}

apply plugin: 'groovy'
apply plugin: 'maven'
.........

buildFinished因为我能够看到相应的 println 但buildStarted似乎从未被触发。

编辑 包括使用构建侦听器的 init.gradle

class MyBuildAdapter extends BuildAdapter {
    void buildStarted(Gradle gradle) {
       println "buildStarted"
    }    
}

gradle.addBuildListener new MyBuildAdapter()
4

2 回答 2

3

问题是buildStarted事件发生在您有机会在构建脚本中注册回调之前。您必须使用其他钩子之一。有关详细信息,请参阅Javadoc 中的Gradle.addBuildListener

于 2013-10-03T18:01:24.793 回答
0

我在编写的自定义插件中遇到了同样的问题,发现只有projectsEvaluated回调是buildFinishedBuildListener.

7 年过去了,Gradle 终于开始承认,一开始就有这种方法没有意义。它将在 Gradle 7 中删除。

https://docs.gradle.org/6.5.1/userguide/upgrading_version_5.html#apis_buildlistener_buildstarted_and_gradle_buildstarted_have_been_deprecated

于 2020-07-24T08:04:55.233 回答