首页 > 解决方案 > 为什么 gradle jar 不构建 gradle build 的 jar?

问题描述

在我的 Gradle 项目中,我定义了一个额外的 sourceSet。

sourceSets {
    sample {
        java {
            srcDir 'sample/java'
        }
        compileClasspath += sourceSets.main.output + sourceSets.main.compileClasspath
    }
}

然后我添加一个任务:

task sampleJar(type: Jar) {
    classifier 'sample'
    from sourceSets.sample.output
}

artifacts {
    archives sampleJar
}

如果我> gradle build从附加源集中构建附加 jar 文件。但是,如果我这样做> gradle jar,它不会。有什么理由吗?

当我浏览输出消息时,我看到:

gradle buildsampleJar要执行的任务中有:

gradle jar没有。

但不确定为什么?

标签: gradle

解决方案


因为jar只是组装主jar文件的任务。

build另一方面,是顶层生命周期任务,它依赖于assemble。并记录assemble

取决于:jar,以及创建附加到档案配置的工件的所有其他任务。

由于您sampleJar精确地创建了一个附加到档案配置的工件assemble,因此build依赖于它。


推荐阅读