为什么 Maven 将资源保存在与 Java 源代码分开的“源文件夹”中?
根据我的经验,在 Java 中,资源文件大多被视为 Java 源文件,当“编译”时,只需要按原样复制类,并最终打包到 jar 中,并由 < em>classloader 的方法 getResource
/getResourceAsStream
,通过 classpath
。
就我个人而言,我发现将资源文件与 Java 源代码分开是一种毫无用处的复杂性。
- 你怎么看?
- maven 将资源与来源分开是否有充分的理由?
- 是否有任何不使用
src/main/resources
和src/test/resources
并保持src/main/java
和src/test/java
中的资源使用 maven?
最佳答案
有一点还没有提到,你显然已经习惯了看到只有 java 源代码的项目。但是,如果您放入其他一些源文件类型,我认为组织更有意义,例如:
- 源/主
- 资源
- Java
- 时髦
每个子目录都有特定的文件分类:
- java -> 编译成java文件的东西
- groovy -> 编译为 groovy 脚本的东西
- 资源 -> 用于任何...的未编译数据(此外,这些可能会被过滤以添加编译时信息)
另外(正如我已经在一些评论中指出的那样),我通常不会将资源目录扁平化。文件可以嵌套到类似包的结构中或适本地嵌套到其他子目录中(根据我的组织意识)。
关于java - 为什么项目布局资源与 Java 源代码分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830547/