Maven 是一个开源的项目管理和构建工具,用于帮助开发团队自动化地构建、管理和发布软件项目。它基于项目对象模型(Project Object Model,POM)概念,并通过一系列的标准化配置文件和约定来实现项目的构建、依赖管理和部署等操作。
以下是 Maven 的一些关键特点和功能:
依赖管理:Maven 可以自动解析和管理项目的依赖关系。通过在项目的 POM 文件中声明依赖项,Maven 可以自动下载所需的依赖包,并确保它们在构建和运行时处于正确的状态。
构建生命周期:Maven 定义了一组标准的构建阶段(Build Phase),例如编译、测试、打包、部署等,开发者可以通过执行相应的命令来触发这些构建阶段。这样可以确保项目的构建过程是一致和可重复的。
多模块支持:Maven 支持将大型项目拆分为多个模块,每个模块都可以独立构建和发布。这种模块化的设计使得团队成员可以更好地合作开发,并且可以减少重复劳动和提高代码复用性。
可扩展性:Maven 提供了灵活的配置选项和扩展机制,以适应不同类型的项目需求。你可以通过自定义配置文件、覆盖默认行为或使用第三方插件来扩展和定制 Maven 的功能。
总体而言,Maven 简化了项目的构建和管理过程,提供了一种标准化和可重复的方式来组织和构建软件项目。它广泛应用于 Java 和其他语言的项目中,并成为了许多开发者在项目构建和依赖管理方面的首选工具之一。
maven 安装包下载https://maven.apache.org/download.cgi
压缩包目录解释
配置maven的环境变量
在DOS命令中测试mvn安装
D:\java\apache-maven-3.6.3>mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: d:\java\apache-maven-3.6.3\bin\..
Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: d:\java\jdk1.8.0_251\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
d:\java\apache-maven-3.6.3\conf\settings.xml
ps: ideal中默认使用用户配置文件,如果你首次安装Maven并运行Maven命令时,如果你没有提供自定义的settings.xml文件,Maven将使用默认的全局配置文件。
避免去中央仓库访问构件,提高访问效率
在setting.xml文件中进行更改
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</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>
默认的路径
如图所示maven可以从本地仓库和远程仓库中找寻所需依赖,如果在本地仓库中找不到依赖就去远程仓库中下载。本地仓库在电脑是一个文件夹存着从远程仓库中下载的依赖,
远程仓库分为中央仓库和远程仓库
中央仓库中的jar包由专业团队(Maven团队)维护,中央仓库中存放了全世界大多数流行的开源软件的jar包,是Maven默认的远程仓库。
http://mvnrepository.com/
:搜索中央仓库的中的依赖构件
除了中央仓库外,您也可以配置自己的私有或第三方仓库。这些仓库可用于存储企业内部的构建产物、依赖项或其他第三方库。您可以在项目的 pom.xml 文件中指定自定义仓库的 URL 和认证信息。
ps:除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等
pom.xml
src/main/java
src/main/resources
src/test/java
src/test/resources
target
mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这个命令不会帮你生成main下的配置文件resources目录和test下的配置文件resources目录
.只会生成源文件目录主代码目录下的java源码目录和测试代码目录下的java源码目录
.这条命令是使用 Maven 生成项目的原型(archetype),创建一个新的 Maven 项目。我们来详细解释一下这个命令的各个参数和其作用:
ps:项目原型是用于生成项目基础结构的模版有以下几种:
maven-archetype-quickstart | maven-archetype-webapp | maven-archetype-jar |
---|---|---|
这是一个基本的快速启动项目原型,适用于创建简单的 Java 项目。它包含了一个简单的 Java 类和一个基本的项目结构。 | 这是一个 Web 应用程序项目原型,适用于创建基于 Servlet 和 JSP 的 Web 项目。它包含了一个基本的 web.xml 文件和一个标准的 Web 项目结构。 | 这是一个用于创建独立 JAR 文件的项目原型。它适用于创建不依赖于 Web 容器的 Java 应用程序。 |