如何配置Gradle以将主类和测试类包含到我的.jar存档中。目前,在 build / libs 目录中构建的.jar缺少我的测试类。在Gradle将它们编译成 project-root / bin / com / package / <之后,它只包含来自.jar中 project-root / src / main / java / com / package 的类。 / strong>。
jar {
manifest {
attributes 'Implementation-Title': title, 'Implementation-Version': version, 'Main-Class': mainTestClass
}
}
奇怪的是,当Gradle将已编译的测试类放入 project-root / bin / com / package / ALONG与主类时,奇怪的是决定不将它们放入.jar存档。那么,我如何让.jar包含最初源自 project-root / src / test / java / com / package / 目录的测试类?
答案 0 :(得分:4)
来自docs:
Java插件定义了两个标准源集,称为main和test。主源代码集包含您的生产源代码,该代码被编译并组装成JAR文件。测试源集包含您的单元测试源代码,使用JUnit或TestNG编译和执行。
您非常怀疑您希望在jar中进行测试,但将它们添加到主源集可能是最简单的解决方案。
答案 1 :(得分:0)
我是这样用的
task jarr(type: Jar) {
from sourceSets.main.output + sourceSets.toSet().output
manifest {
attributes(
'Main-Class': 'main.Mainn',
"Manifest-Version": "1.0",
"Class-Path": configurations.compile.collect { it.getName() }.join(' ') + ' ' +
configurations.testRuntime.collect { it.getName() }.join(' ') + ' ' +
configurations.implementation.collect { it.getName() }.join(' ')
)
}
}