首页 > 解决方案 > Gradle sourceSets: classesDir 已被弃用

问题描述

我看过类似的帖子,但我不太确定应该对我的配置进行哪些更改。我最近升级到 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

标签: javagradlegradlew

解决方案


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

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

testClassesDir = sourceSets.uiTest.output.classesDir

testClassesDirs = sourceSets.uiTest.output

推荐阅读