亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Gradle Kotlin DSL 和 Intellij 的自定義測試源集

使用 Gradle Kotlin DSL 和 Intellij 的自定義測試源集

森林海 2022-06-30 17:49:20
我的項目是使用 Gradle 和 Kotlin DSL 進行構建。我現在想添加一個用于測試的自定義源集。相關代碼如下:java {    sourceSets.create("systemTest") {        java.srcDir("src/system-test/java")        resources.srcDir("src/system-test/resources")    }}通過使用它,我在 Intellij 中獲得了另一個模塊,該模塊被視為源模塊。我還嘗試了以下方法將其標記為測試模塊:idea.module { testSourceDirs.addAll(project.sourceSets.getByName("systemTest").java.srcDirs)testSourceDirs.addAll(project.sourceSets.getByName("systemTest").resources.srcDirs)}但是,如果我然后./gradlew clean idea使用生成的文件打開項目(通常我從 Gradle 導入我的項目),則 system-test 文件夾根本不會被視為源模塊。任何人都有使用 Kotlin DSL 聲明自定義源集并將其標記為測試模塊的經驗?編輯:我現在使用 Groovy 創建了一個示例 Gradle 項目,并且使用以下代碼可以正常工作(我猜這只是我上面語句的 groovy 版本):sourceSets {  systemTest {    java {      compileClasspath += main.output + test.output      runtimeClasspath += main.output + test.output      srcDir file('src/system-test/java')    }    resources.srcDir file('src/system-test/resources')  }}idea {    module {        testSourceDirs += project.sourceSets.systemTest.java.srcDirs        testSourceDirs += project.sourceSets.systemTest.resources.srcDirs    }}所以要么我對 Kotlin DSL 的轉換是錯誤的,要么是 Intellij 方面的一個錯誤。
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

好像我把 Kotlin 轉換錯了,應該是


idea.module {

    val testSources = testSourceDirs


    testSources.addAll(project.sourceSets.getByName("systemTest").java.srcDirs)

    testSources.addAll(project.sourceSets.getByName("systemTest").resources.srcDirs)


    testSourceDirs = testSources

}

使用此代碼段,testSourceDirs更改集并將相關源集標記為測試模塊。


查看完整回答
反對 回復 2022-06-30
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

另一種方法:


testSourceDirs = testSourceDirs.plus(sourceSets["integrationTest"].java.srcDirs)

testResourceDirs = testResourceDirs.plus(sourceSets["integrationTest"].resources.srcDirs)



查看完整回答
反對 回復 2022-06-30
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號