gpt4 book ai didi

java - 使用 Gradle 和 Groovy/Spock 测试 Java 6 库或应用程序

转载 作者:行者123 更新时间:2023-11-30 08:38:17 27 4
gpt4 key购买 nike

我有一个由 Gradle 2.4 构建的 Java 库,一些 Java 6 应用程序、一些 Java 7 应用程序、一些 Java 8 应用程序和一些 Groovy 2.x 应用程序将使用它。因此,为了尽可能向后兼容,我编写的库同时具有 sourceCompatibility1.6targetCompatibility :

build.gradle
============
apply plugin: 'java'
apply plugin: 'groovy'

sourceCompatibility = '1.6'
targetCompatibility = '1.6'

repositories {
mavenCentral()
jcenter()
}

dependencies {
compile (
'org.slf4j:slf4j-api:1.7.12'
)

testCompile (
'org.codehaus.groovy:groovy-all:2.4.6'
,'org.spockframework:spock-core:1.0-groovy-2.4'
)
}

但是,我没有理由不能在 Groovy/Spock 中编写我的单元测试。只要 Groovy 不是主/编译/运行时类路径的一部分,那么我就可以自由地用我喜欢的任何 JVM 语言编写我的测试!我选择 Groovy/Spock!

问题是,我以前从未做过这样的事情。我认为我需要将 Groovy-All 和 Spock 添加到 testCompile 类路径中,但是我不确定是否需要应用 Groovy 插件,以及任何其他配置。

再次:

  • 主要的编译/运行时类路径必须是无 Groovy 的并且必须与 Java 1.6 兼容
  • 测试编译/运行时类路径可以包含我喜欢的任何内容

关于我需要在上面进行哪些具体更改有什么想法吗?

最佳答案

如果您希望 Gradle 编译任何 Groovy,无论是主要源代码还是只是测试源代码,您都需要应用 groovy gradle 插件。也就是说,只要您不是在构建一个胖 jar(即,一个 JAR 库,它本身包含依赖库,因此它可以作为一个独立的应用程序运行),那么您不应该在运行时类路径上与 Groovy 有任何联系。你是正确的,你会想要将 Spock/Groovy 添加到你的 testCompile 依赖项,并且只要你将它们限制在 testCompile 范围内,即使创建一个胖 JAR 也不应该将它们包含在你的主编译类路径中,在最终构建的工件中,或者需要在运行时位于类路径上。

相关说明,在 Gradle 中,您还可以修改任何和所有依赖项的配置。看看 Gradle Dependency Management有关更多信息的文档。

关于java - 使用 Gradle 和 Groovy/Spock 测试 Java 6 库或应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36654894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com