Maven入门

时间:2024-10-13 07:19:30

Maven

Maven Wrapper

  1. 版本一致性

    • Maven Wrapper 允许你在项目中指定一个特定的 Maven 版本。这意味着所有开发人员和 CI/CD 环境都将使用相同版本的 Maven,从而避免由于版本不一致导致的问题。
  2. 简化设置

    • 新开发者克隆项目时,不需要手动安装 Maven。只需使用 mvnw(或 mvnw.cmd)脚本,系统会自动下载并使用项目指定的 Maven 版本。
    • 只需要第一个创建文件的人wrap这个项目,后面的人甚至不需要有Maven
  3. 提高可移植性

    • 因为 Maven Wrapper 脚本是项目的一部分,所以无论在什么平台上(Windows、Linux、Mac OS),都可以一致地使用 Maven。这对于跨平台开发特别有用。
  4. 便于更新

    • 当需要更新 Maven 版本时,只需修改项目中的 pom.xml 文件并运行 mvn wrapper:wrapper,就能轻松实现所有开发人员和环境的升级。
  5. 减少环境问题

    • 由于 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)