Maven
Maven Wrapper
-
版本一致性:
-
- Maven Wrapper 允许你在项目中指定一个特定的 Maven 版本。这意味着所有开发人员和 CI/CD 环境都将使用相同版本的 Maven,从而避免由于版本不一致导致的问题。
-
简化设置:
-
- 新开发者克隆项目时,不需要手动安装 Maven。只需使用 mvnw(或 mvnw.cmd)脚本,系统会自动下载并使用项目指定的 Maven 版本。
- 只需要第一个创建文件的人wrap这个项目,后面的人甚至不需要有Maven
-
提高可移植性:
-
- 因为 Maven Wrapper 脚本是项目的一部分,所以无论在什么平台上(Windows、Linux、Mac OS),都可以一致地使用 Maven。这对于跨平台开发特别有用。
-
便于更新:
-
- 当需要更新 Maven 版本时,只需修改项目中的 pom.xml 文件并运行 mvn wrapper:wrapper,就能轻松实现所有开发人员和环境的升级。
-
减少环境问题:
-
- 由于 Maven Wrapper 可以自动下载正确的 Maven 版本,因此减少了由于环境差异(如不同操作系统、不同版本等)引起的问题。
对象模型(POM)
groupId
:标识组织或公司,通常是域名的反向形式(例如 com.jetbrains.marco
)。
artifactId
:项目的标识符,通常是项目名称(例如 maven-tutorial
)。
version
:项目的版本号,1.0-SNAPSHOT
表示这是一个开发中的版本。
依赖项:
<dependency>
<groupId>com.mpatric</groupId>
<artifactId>mp3agic</artifactId>
<version>0.9.1</version>
</dependency>
此后我不用手动下载和配置MP3库,它会自动从网站上下载,但要用的时候还是需要import。
IDEA中的插件Ctrl + Shift + M搜索maven,可以直接复制,非常方便。
指令
maven clean
:删除target文件
maven compile
:compile所有的src底下的main/java文件,放入target,
maven compile test
:先看main/java文件,再看test文件
mvn package
:在编译成功后,将项目打包成 .jar
或 .war
文件。
mvn test
:功能:编译项目的主代码和测试代码,并运行测试。
mvn install
:jar放入本地Maven储存库
所有操作都包括了前面的操作
clean compile test package install
Convention
src里有main和test
main里面有java和resource(放静态图片等)
test里有java也可以有resource
多模块
父项目
父项目的主要作用就是管理和聚合子项目(模块)。在 Maven 中,父项目提供了一种方式来集中管理多个子项目的依赖、插件和构建配置,减少重复配置,并确保所有子项目共享相同的构建环境和依赖版本。
他不会生成jar,他只有一个pom文件。
子项目中需要指定父项目(在packaging中,父项目是poem,子项目是jar)