为什么赢了';gradle jar构建一个gradle构建的jar吗?

为什么赢了';gradle jar构建一个gradle构建的jar吗?,gradle,Gradle,在我的Gradle项目中,我定义了一个额外的源集 sourceSets { sample { java { srcDir 'sample/java' } compileClasspath += sourceSets.main.output + sourceSets.main.compileClasspath } } 然后,我添加一个任务: task sampleJar(type: Jar) { cl

在我的Gradle项目中,我定义了一个额外的源集

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
}
如果我执行gradlebuild,那么额外的jar文件将从额外的源代码集中生成。但是,如果我使用gradle jar,它就不会使用。有什么原因吗

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

gradle build
在要执行的任务中有
sampleJar

但是

gradlejar
没有


但是不确定为什么?

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

另一方面,
build
是顶级生命周期任务,它依赖于
assembly
。而
组装

取决于:jar和创建附加到归档配置的工件的所有其他任务

由于您的
sampleJar
特别创建了一个附加到归档配置的工件,
assemble
,因此
build
依赖于它