我定义了一个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
目录中排除资源,如下图所示。
有人可以解释为什么会发生这种情况,并给出可能的解决方案以使artifactId-version-exe.jar
包含主类吗?