4.0摇篮昨天走了出来,我更新了它的项目。
现在,我得到以下警告:
摇篮现在使用单独的输出目录中每个JVM的语言,但这个版本假设从源集合中的所有类的单一目录。此行为已取消,并计划在摇篮5.0被删除
我想用不同的输出目录为每种语言。我需要做什么来改变要做到这一点?
事情我想:
gradle clean
其次是 gradle build
gradle build
。gradle
相关GitHub的问题
摇篮插件:
摇篮4.0引入了多种sourceSet
每个JVM语言S IN为了使远程构建缓存。随着java
插件你build/classes/main
应该成为build/classes/java/main
并build/classes/test
应该成为build/classes/java/test
等等。
警告你所看到的是在定义DefaultSourceSets.java
因此,如果您的项目或内的任何插件build.gradle
调用DefaultSourceSetOutput.getClassesDir()
(或接入classesDir
),你得到这个警告。
用
sourceSets.main.output.classesDir = new File(buildDir, "classes/main")
这相当于:
@Override
public boolean isLegacyLayout() {
return classesDir!=null;
}
@Override
public void setClassesDir(File classesDir) {
setClassesDir((Object)classesDir);
}
@Override
public void setClassesDir(Object classesDir) {
this.classesDir = classesDir;
this.classesDirs.setFrom(classesDir);
}
需要注意的是SourceSetOutput.java标记getClassesDir()
为过时。
因此,除非在摇篮4.0项目获得支撑所有的插件,你应该坚持的解决方法,而忽略了废弃警告。
另一个问题是测试文件。如果你不希望有新的布局(build/classes/main
和build/classes/java/test
),你应该调整测试路径太:
sourceSets.main.output.classesDir = new File(buildDir, "classes/main")
sourceSets.test.output.classesDir = new File(buildDir, "classes/test")
UPDATE IDEA的用户可能会注意到IDE使用单独的开始out
,如果检测到摇篮4.x版的编译目录。这使得不可能热应用重装如果您运行的IDEA应用程式以外。为了解决这个问题添加和重新导入:
subprojects {
apply plugin: 'idea'
// Due to Gradle 4.x changes (separate output directories per JVM language)
// Idea developers refuse to reuse Gradle classpath and use own 'out/' directory.
// Revert to old behavior to allow Spring Devtool to work with using fast Idea compiler.
// https://youtrack.jetbrains.com/issue/IDEA-175172
// Alternatively use native Gradle builds or bootRun.addResources = true
// To use this feature push Ctrl+Shift+F9 to recompile!
// Be aware that Idea put resources into classes/ directory!!
idea.module.inheritOutputDirs = false
idea.module.outputDir = sourceSets.main.output.classesDir
idea.module.testOutputDir = sourceSets.test.output.classesDir
}
请注意,IDEA放的资源投入到同一个目录中.class
的文件,以便您的摇篮类路径可能会损坏。只要做gradle clean
对您使用内置的构建命令(Ctrl + Shift + F10等),IDEA模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句