解决Gradle工程编译源文件忽略xml,properties,config等文件的问题

如果你使用Gradle构建项目后,发现.java文件同级目录中.xml文件没有被拷贝到.class的输出目录中,可以在项目配置中加入

sourceSets.main.java.srcDirs = ['src']

sourceSets.main.resources.srcDirs = sourceSets.main.java.srcDirs

原理:

task compileJava,任务类型JavaCompile ,只编译".java"文件,其他类型文件全部忽略,输出目录为 build/classes/main。

task processResources,任务类型Copy,忽略".java"文件,其他文件全部拷贝到 build/resources/main目录。

将resource指向src路径后,在任务processResources中,会将所有.xml等配置文件拷贝到build/resources/main中,而默认IDEA会将这个路径加入到classpath中的。

扩展:

还有些配置文件放在指定目录中,比如指定一个'config'目录用来存放一些数据库配置参数。

读取时使用 class.getClassLoader().getResourceAsStream() 方法读取,这些文件的目录也要加入到classpath中的。可以在工程中配置

dependencies {   
  // 将config目录加入runtime classpath中
  runtime files('config') 
}
这样这个目录中的文件就可以在运行时加载了,到现在希望你没有被ClassLoader指定路径的使用搞晕。
 

转载于:https://my.oschina.net/asay/blog/674143

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值