gradle idea 不能点确定_IDEA 13、14 配合 gradle 时候无法正确编译资源文件的 bug

问题说明

IDEA 确实是个折腾人的玩意,没想到在最基本的编译环节居然也能遇到问题。

此次配置一个单module 的项目,使用的是 gradle 导入项目,没想到发现编译之后允许某个单元测试的时候出错了,到 build 目录一看,感情是 resources 目录下的配置文件都没用拷贝过来,只有一堆的 class package。

Google 一圈发现这是 IDEA 的 bug,不过官方 issue 里面不愿意承认是 bug:

这个问题据说也牵连到了 Android Studio。

官方提供的解决办法

给出的解决办法是在 gradle 的 IDEA 配置中增加一行:

idea {

module {

inheritOutputDirs = true

}

}

也就是说默认采用项目的编译输出路径:

这时候还需要注意一点,尽量不要手贱(例如我),在这儿又设置了下项目名称:

idea {

module {

name = "XXOO"

inheritOutputDirs = true

}

}

这么搞的话输出又会出现问题了,奶奶的,IDEA 你还敢说这不是你们的 bug,起码是处理不严谨吧!!!

** :exclamation: 另外采用这种办法的话,需要删除项目下的 IDEA 相关配置文件,然后重新导入。**

民间智慧

在stackoverflow 发现的解决办法 是在 gradle 中多配置个 Task:

task copyTestResources(type: Copy) {

from "${projectDir}/src/test/resources"

into "${buildDir}/classes/test"

}

processTestResources.dependsOn copyTestResources

意思很简单,就是在处理 Test 资源的时候将这些 resources 下的文件拷贝到相应的 build 下。

不过这种方法有点麻烦,单项目比较简单,直接用就行了,但是如果是多 module 的话还得进行相应处理。

结论

这个无论如何我觉得都算是 IDEA 的bug 了,不过目前既然有了解决方案起码不算是太影响干活。

另外推荐采用官方提供的解决方案,相对来说省事,也能顺便解决多 module 的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值