java - 为什么项目布局资源与 Java 源代码分开?

标签 java maven layout resources

为什么 Maven 将资源保存在与 Java 源代码分开的“源文件夹”中?

根据我的经验,在 Java 中,资源文件大多被视为 Java 源文件,当“编译”时,只需要按原样复制类,并最终打包到 jar 中,并由 < em>classloader 的方法 getResource/getResourceAsStream,通过 classpath

就我个人而言,我发现将资源文件与 Java 源代码分开是一种毫无用处的复杂性。

  1. 你怎么看?
  2. maven 将资源与来源分开是否有充分的理由?
  3. 是否有任何不使用 src/main/resourcessrc/test/resources 并保持 src/main/javasrc/test/java 中的资源使用 maven?

最佳答案

有一点还没有提到,你显然已经习惯了看到只有 java 源代码的项目。但是,如果您放入其他一些源文件类型,我认为组织更有意义,例如:

  • 源/主
    • 资源
    • Java
    • 时髦

每个子目录都有特定的文件分类:

  • java -> 编译成java文件的东西
  • groovy -> 编译为 groovy 脚本的东西
  • 资源 -> 用于任何...的未编译数据(此外,这些可能会被过滤以添加编译时信息)

另外(正如我已经在一些评论中指出的那样),我通常不会将资源目录扁平化。文件可以嵌套到类似包的结构中或适本地嵌套到其他子目录中(根据我的组织意识)。

关于java - 为什么项目布局资源与 Java 源代码分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830547/

相关文章:

flutter - Flutter:我要排成一排,有两张卡片,上面有一张图片和一个文字,如下图所示

css - Flex 布局 - 2 列布局的文本换行问题

java - 如何散列复合类?

java - 唯一约束失败,SQLite,Java

java - AppEngine+GCM : IOException: Could not fetch URL: https://android. googleapis.com/gcm/send

java - launchpad 提示缺少 maven-site-plugin 但我根本不使用它

java - 如何知道SCM中哪些Maven模块被更改?

java - 将我的 webapp 部署到 Tomcat7 时遇到问题

android - 如何使Android布局中的对象覆盖另一个对象?

java - 如何动态初始化二维对象数组