簡體   English   中英

使用 Gradle 和 Groovy/Spock 測試 Java 6 庫或應用程序

[英]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 以同時具有sourceCompatibilitytargetCompatibility 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 插件以及任何其他配置。

再次:

  • 主編譯/運行時類路徑必須是 Groovy-free 並且必須與 Java 1.6 兼容
  • 測試編譯/運行時類路徑可以包含我喜歡的任何內容

關於我需要在上面進行哪些具體更改的任何想法?

如果您希望 Gradle 編譯任何Groovy,無論是主源還是測試源,您都需要應用groovy gradle 插件。 也就是說,只要您不構建胖 jar(即,一個 JAR 庫本身包含依賴庫,因此它可以作為獨立應用程序運行),那么您就不應該在運行時類路徑上與 Groovy 有任何聯系。 您是正確的,您希望將 Spock/Groovy 添加到您的 testCompile 依賴項中,並且只要您將它們的范圍限定為 testCompile,即使創建一個胖 JAR 也不應該將它們包含在您的主編譯類路徑中,在最終構建的工件中,或需要在運行時位於類路徑上。

在相關說明中,在 Gradle 中,您還可以修改任何和所有依賴項的配置。 查看 Gradle Dependency Management文檔以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM