项目结构
创建Maven

项目结构
my-project
│
├── pom.xml
│
└── src
├── main
│ ├── java
│ │ └── com/example/project
│ │ └── App.java
│ │
│ ├── resources
│ │ └── application.properties
│ │
│ └── webapp (Web项目才有)
│ ├── WEB-INF
│ └── index.jsp
│
└── test
├── java
│ └── com/example/project
│ └── AppTest.java
│
└── resources
└── test.propertiessrc
main
存放 正式代码(生产代码)
- java
Java 源代码。
- resources
存放 配置文件 / 静态资源文件。这些文件 会被打包进 classpath。
application.properties
application.yml
logback.xml
mybatis.xml
mapper.xml- webapp
如果是 Java Web 项目(Servlet / JSP) 才有
test
测试代码,测试代码不会被打包
- java
存放java代码
- resources
存放测试代码中使用的 配置文件 / 静态资源文件
target
编译后生成的文件将存放在target目录中。这个目录 可以删除,重新 mvn package 会生成。
项目结构:
target
├── classes
├── test-classes
├── generated-sources
└── demo-1.0.jarclasses
存放 src/main/java 编译后的字节码文件。它保持了你在 src/main/java 中的包结构,同时也会把 src/main/resources 下的配置文件(如 application.yml)拷贝到这里。
generated-sources
generated-sources 是 Maven 在构建过程中自动生成的源码目录,用于存放 工具或插件生成的 Java 源代码,而不是开发者手写的代码。
有些工具会 自动生成 Java 代码,例如:
- 注解处理器
- ORM 代码生成
- API 代码生成
- gRPC / protobuf
这些代码需要参与编译,但又 不应该放在 src/main/java。
test-classes
测试字节码
存放 src/test/java 编译后的字节码文件,它保持了你在 src/test/java 中的包结构。test-classes中的代码仅用于测试,不进入jar
[artifactId]-[version].jar
[artifactId]-[version].jar (或 .war): 这是最终的可执行文件。jar包含了静态资源文件,这些文件是只读的
