[英]Using Gradle and Groovy/Spock to test a Java 6 lib or app
我有一個由 Gradle 2.4 構建的 Java 庫,它將被一些 Java 6 的應用程序、一些 Java 7 的應用程序、一些 Java 8 的應用程序和一些 Groovy 2.x 的應用程序使用。 因此,為了盡可能向后兼容,我正在編寫 lib 以同時具有sourceCompatibility
和targetCompatibility
1.6
:
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 插件以及任何其他配置。
再次:
關於我需要在上面進行哪些具體更改的任何想法?
如果您希望 Gradle 編譯任何Groovy,無論是主源還是測試源,您都需要應用groovy
gradle 插件。 也就是說,只要您不構建胖 jar(即,一個 JAR 庫本身包含依賴庫,因此它可以作為獨立應用程序運行),那么您就不應該在運行時類路徑上與 Groovy 有任何聯系。 您是正確的,您希望將 Spock/Groovy 添加到您的 testCompile 依賴項中,並且只要您將它們的范圍限定為 testCompile,即使創建一個胖 JAR 也不應該將它們包含在您的主編譯類路徑中,在最終構建的工件中,或需要在運行時位於類路徑上。
在相關說明中,在 Gradle 中,您還可以修改任何和所有依賴項的配置。 查看 Gradle Dependency Management文檔以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.