【问题标题】:Gradle sourceSets: classesDir has been deprecatedGradle sourceSets: classesDir 已被弃用
【发布时间】:2019-11-04 17:22:47
【问题描述】:

我看过类似的帖子,但我不太确定应该对我的配置进行哪些更改。我最近升级到 gradle 4.10 并开始出现一堆错误。我对groovy很陌生。

说明

我有一个 gradle 文件 uiTest.gradle

 1.   configurations {
 2.               uiTest
 3.           }
 4.           
 5.           sourceSets {
 6.               uiTest {
 7.                   java.srcDir file('src/uiTest/java')
 8.                   resources.srcDirs file('src/uiTest/resources')
 9.               }
 10.           }
 11.           
 12.           dependencies {
 13.               ...
 14.               uiTestCompile 'commons-io:commons-io:2.6'
 15.           }
 16.           
 17.           task uiTest(type: Test) {
 18.               include '**/*Test.class'
 19.           
 20.               dependsOn 'cleanUiTest'
 21.           
 22.               testClassesDir = sourceSets.uiTest.output.classesDir
 23.               classpath = sourceSets.uiTest.runtimeClasspath
 24.           
 25.               if (project.hasProperty('testEnv') && project.property('testEnv') != 'dev') {
 26.                  maxParallelForks = 4
 27.               } else {
 28.                   
 29.               }
 30.           
 31.           }

我在 第 22 行

收到错误

Gradle 现在为每种 JVM 语言使用单独的输出目录,但此构建假定源集中的所有类都有一个目录。

testClassesDir = sourceSets.uiTest.output.classesDir

【问题讨论】:

  • SourceSetOutput.getClassesDir() 的弃用消息指向替换选项。
  • 我尝试使用 classesDir 但这也不起作用。
  • 已经使用classesDir。试试classesDirssourceSets.uiTest.java.outputDir

标签: java gradle gradlew


【解决方案1】:

我也遇到了这个问题,在这里找到了答案: http://www.thinkcode.se/blog/2017/08/14/gradle-settestclassesdirfile-method-has-been-deprecated

对于您的情况,我建议更换:

testClassesDir = sourceSets.uiTest.output.classesDir

testClassesDirs = sourceSets.uiTest.output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2019-04-04
    • 2018-12-12
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多