Maven学习笔记(4)-Maven目录结构

一、背景

  在Maven出现之前,Java 项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在哪里,没有一个权威的规范。而Maven对项目的目录结构、测试用例命名方式等内容都做了规定。使用Maven管理的项目必须满足这些规则。用户在不同项目间切换的时候,免去了额外学习成本,即约定优于配置(Convention Over Configuration)。


二、目录结构和解读

目录 解读
src/main/java 主代码。编写java源代码的地方。
src/main/resources 主资源。执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中。
src/main/filters 资源过滤文件
src/main/webapp web应用的目录,WEB-INF,js,css等。(类似于动态web项目里的webContent目录。)
src/main/assembly 组件的描述配置,如何打包
src/test/java 测试代码。编写测试代码的地方。测试代码只在运行测试时用到,不会被打包。
src/test/resources 测试资源。执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中。
src/test/filters 测试资源过滤库。
src/it Integration Tests (primarily for plugins)
src/site 一些文档
target maven的输出目录。存放项目构建后的文件和目录,如jar包、war包、编译的class文件等。是clean、compile等命令操作的目录
LICENSE.txt Project’s license
NOTICE.txt Notices and attributions required by libraries that the project depends on
README.txt Project’s readme

  在项目的顶层有:src、target、pom.xml文件、文本文档(readme.txt、license.txt、NOTICE.txt等),此外,‘.gitignore’是git的忽略配置文件一般也放在顶层。

  这个结构只有两个子目录:src和target。这里唯一需要的其他目录是元数据,如cvs,.git或.svn,以及多项目构建中的任何子项目(每个子项目都将如上所述)。

  如果工程的构建还有其他贡献源,那么它们将位于其他子目录下:例如,src/main/antlr将包含antlr语法定义文件。(这句话应该可以解释,为啥项目中有其他目录。)


三、工作中项目的结构截图

在这里插入图片描述


四、参考地址:

GNG
发布了118 篇原创文章 · 获赞 389 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/so_geili/article/details/89790395