Gradle Jar类型任务不会打包来自src / main的.class文件

时间:2019-12-07 12:50:48

标签: java gradle groovy

我定义了一个Jar类型的任务“ exeJar”来打包可执行的jar,如下所示。

task exeJar(type: Jar, group: 'build', dependsOn: classes) {

    description 'Package an executable jar.'

    archiveClassifier.set('exe')

    manifest {
        attributes 'Main-Class': mainClassName
    }

    from {
        configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
    }

}

然后我将jar任务排除在主类之外。

jar{
    exclude 'com/example/*class'
}

jar:打包一个artifactId-version.jar文件,该文件仅包含来自src/main的资源,但不包括主类。

exeJar:打包可执行文件artifactId-version-exe.jar

但是artifactId-version-exe.jar仅包含依赖项,并从src/main目录中排除资源,如下图所示。

the contents of .jar

有人可以解释为什么会发生这种情况,并给出可能的解决方案以使artifactId-version-exe.jar包含主类吗?

0 个答案:

没有答案