配置Gradle以将主类和测试类包含到我的.jar存档中

时间:2012-11-19 01:30:23

标签: build gradle

如何配置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 / 目录的测试类?

Here is my build.gradle file我需要帮助。

2 个答案:

答案 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(' ')
        )
    }

}