栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Gradle中拆分所有输出目录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Gradle中拆分所有输出目录

Gradle 4.0

sourceSet
为每种JVM语言引入了多个s,以便启用远程构建缓存。使用该
java
插件,您
build/classes/main
应该成为
build/classes/java/main
build/classes/test
应该成为
build/classes/java/test
,等等。

您看到的警告在DefaultSourceSets.java中定义

因此,如果项目中有任何插件或您的

build.gradle
调用
DefaultSourceSetOutput.getClassesDir()
(或访问
classesDir
),您将收到此警告。

解决方案1

sourceSets.main.output.classesDir = new File(buildDir, "classes/main")

对应于:

@Overridepublic boolean isLegacyLayout() {    return classesDir!=null;}@Overridepublic void setClassesDir(File classesDir) {    setClassesDir((Object)classesDir);}@Overridepublic void setClassesDir(Object classesDir) {    this.classesDir = classesDir;    this.classesDirs.setFrom(classesDir);}

请注意,SourceSetOutput.java标记

getClassesDir()
为已弃用。

因此,在项目中的所有插件都获得对Gradle 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的用户可能会注意到,

out
如果检测到Gradle 4.x
,IDE将开始使用单独的目录进行构建。如果您在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类路径可能会损坏。只需
gradleclean
对使用IDEA内置构建命令(Ctrl + Shift + F10等)的模块进行操作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号