maven
1. 介绍
Maven 是一款强大的项目管理和构建自动化工具,特别针对 Java 平台而设计,但它也可以用于其他类型的项目。它是由 Apache 软件基金会开发和维护的开源项目,旨在简化和标准化 Java 应用程序的构建过程。
主要特点与作用:
项目对象模型(Project Object Model, POM): Maven 使用 XML 格式的 pom.xml 文件来描述项目的基本信息、配置和构建过程。POM 包含了项目依赖、构建目标、构建过程、开发者信息、构建环境配置等内容。
构建生命周期(Build Lifecycle): Maven 提供了一套预定义的构建阶段(比如 clean、compile、test、package、install 和 deploy),这些阶段按照既定顺序执行,构成项目构建的完整生命周期。
依赖管理(Dependency Management): Maven 可以自动处理项目之间的依赖关系,可以从远程仓库(如 Maven 中央仓库)下载所需的 JAR 包及其依赖,并确保各个库的版本一致性,减少版本冲突的问题。
插件系统(Plugin System): Maven 插件是用来实现构建生命周期各阶段功能的具体工具。通过配置不同的插件,可以轻松完成编译、测试、打包(如 JAR、WAR 或 EAR)、部署等各种任务。
统一目录结构与最佳实践:Maven 强调项目结构的一致性,提倡约定优于配置的理念,通过标准的项目布局,使得不同项目间具有相似性和易维护性。
仓库管理(Repository Management): Maven 支持本地仓库和远程仓库,能够有效地管理项目构建过程中所需的第三方库和内部发布的构件。
跨平台支持:由于 Maven 是基于 Java 编写的,因此可以在任何安装有 Java 运行环境的操作系统上运行,具备良好的跨平台特性。
总结来说,Maven 不仅仅是一个构建工具,它还通过一系列标准和自动化流程促进了团队协作和高效开发,让开发者能专注于业务逻辑实现,而不是重复的手动构建过程。
>>参考自文心一言
PS: 官方文档
https://maven.apache.org/what-is-maven.html
2. jdk和maven关系
https://maven.apache.org/docs/history.html

3. 下载安装
# 1.下载地址
https://maven.apache.org/download.cgi
# 2. 按照流程安装
# 3. 配置环境变量
新建系统环境变量MAVEN_HOME=D:\study\java\apache-maven-3.8.8
编辑Path=%MAVEN_HOME%\bin
PS: 若不生效 可往上移
# 4. 查看版本
mvn -v

4. 配置文件
# 配置文件路径
%MAVEN_HOME%\conf\settings.xml
# 1. 配置远程仓库下载源
关键词-mirrors
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
PS: https://developer.aliyun.com/mvn/guide
# 2. 配置本地仓库
关键词-localRepository
按照具体需求配置
<localRepository>D:\study\java\maven-repository</localRepository>
# 3. 配置jdk版本
关键词-profile
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
5. 命令
# 1. 编译(生成target文件夹;编译项目源码为字节码.java->.class)
mvn compile
# 2. 清理(清理target目录下的文件)
mvn clean
# 3. 测试(生成测试报告文件夹surefile-reports)
mvn test
# 4. 打包(打包项目成jar或war)
mvn package
# 5. 安装到本地仓库(通过pom.xml安装jar包到本地仓库)
mvn install
# 6. 创建maven项目
mvn archetype:generate -DgroupId=<groupId> -DartifactId=<projectName> -DarchetypeArtifactId=maven-archetype-webapp -Dversion=<version> -DinteractiveMode=false
-DarchetypeArtifactId: web项目(可选)
-DinteractiveMode: 控制台输入
# 7. maven依赖
mvn dependency:tree
mvn dependency:list
# 8 web相关
mvn tomcat:run # 启动内嵌的tomcat服务器并运行当前项目 默认监听8080端口 -Dmaven.tomcat.port=<port>更改
mvn tomcat:deploy # 部署打包的war到本地或远程tomcat服务器上
mvn tomcat:redeploy
mvn tomcat:start # 启动tomcat服务器上已部署的应用
mvn tomcat:stop
```
<!--pom.xml-->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>${版本}</version>
<configuration>
<path>/</path> <!--项目访问URL -->
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
```
mvn jetty:run # 启动jetty服务 -Djetty.http.port=<port>
```
<!--pom.xml-->
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${版本}</version>
</plugin>
</plugins>
</build>
```
PS: springboot内嵌tomcat可直接运行也可单独在通过war包部署到本地tomcat上运行启动
mvn命令详情参考:https://www.cnblogs.com/wkrbky/p/6352188.html
jetty命令详情参考: https://www.cnblogs.com/yiwangzhibujian/p/5856857.html
6. 实例


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!