Gradle Multi Project-在“ jar”之前对每个Java库项目应用“ clean”任务

时间:2019-07-11 15:52:53

标签: java gradle

正如标题中提到的,我有Gradle Multi-Project包含java库。我找不到在执行clean任务之前添加javadocjar任务的方法。

这是我当前的build.gradle文件

apply plugin:'java'

task printRootProjectInfo{
    println '----- Project info -----'
    println 'Project name: ' + rootProject.name
    println 'Subprojects: '
    subprojects.findAll { subproject -> println "    $subproject.name" }
}

allprojects {
    repositories {
        mavenCentral()
        jcenter()
    }
}

subprojects{
    jar {
        dependsOn clean
    }
}

//todo: add `clean` task before each `jar` task for subprojects
//def printProjectInfo  = {
//    println '====== Start processing subproject ======'
//    println "______ $rootProject.name ==>  $project.name"
//}

我在StackOverFlow上找到了代码,有人设法为每个项目调用简单的打印命令,但找不到dependOn语法的示例。

我尝试使用语法:

subprojects{
    jar {
        dependsOn clean
    }
}

但这似乎没有效果。

您能提供一个例子吗?

我使用Gradle 5.5.1

1 个答案:

答案 0 :(得分:0)

如果有人需要答案,这是对我有用的语法:

subprojects {
    apply plugin: 'java-library'
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'

    tasks.jar.dependsOn("clean")
}