文章目录
- 概述
- Maven 的主要特点
- Maven 安装
- 安装步骤
- settingx.ml常用仓库地址
- Idea 使用maven常见坑
- Maven 常用命令
- mvn clean
- mvn install
- mvn deploy
- mvn compile
- pom.xml配置
- 排除依赖中的某个包
- 配置 maven编译的版本
- maven 文件资源的配置
概述
-
Maven
是一个基于Java
的构建工具和项目管理工具。它提供了一套完整的构建生命周期框架,用于描述项目构建过程、依赖管理和项目信息。Maven
使用一个声明式的方式来描述项目构建过程,简化了项目配置和管理,提高了开发效率。
Maven 的主要特点
项目对象模型(Project Object Model
,POM
):Maven
使用 POM
来描述项目的基本信息、依赖关系、构建过程等。POM
是一个 XML
文件,包含了项目的各种配置信息。
- 依赖管理:
Maven
提供了一套强大的依赖管理机制,可以自动下载和管理项目依赖的库和组件。开发者只需在POM
文件中声明依赖,Maven
会自动从中央仓库或本地仓库下载所需的依赖。 - 构建生命周期:
Maven
定义了一套标准的构建生命周期,包括编译、测试、打包、部署等阶段。开发者可以通过命令行或IDE
工具来执行构建生命周期中的各个阶段。 - 插件机制:
Maven
提供了丰富的插件机制,用户可以通过插件来扩展Maven
的功能。Maven
官方提供了大量的插件,用于支持各种构建和部署任务。 - 仓库管理:
Maven
使用仓库机制来管理依赖和构件。Maven
中央仓库是全球最大的Java
开源组件仓库,开发者可以在其中查找和下载所需的依赖。同时,Maven
还支持本地仓库和私服,用于管理本地组件和企业内部组件。
Maven
的使用可以大大简化 Java
项目的构建和管理过程,提高开发效率,降低项目维护成本。同时,Maven
的标准化和统一的项目结构也使得开发者更容易理解和维护其他人的项目。
Maven 安装
安装步骤
- 下载
maven
配置环境变量,即可使用
settingx.ml常用仓库地址
- 阿里云仓库
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
Idea 使用maven常见坑
- Idea右侧
Profiles
下面的每个maven
项目报红,因为项目无法识别到当前的maven
项目,右键unlink maven projects
,点击加号重新添加项目。 - 编译的时候如果
class
文件中已经存在了,但是Idea
报找不到类并且报红,可以尝试上面的方法。或者清理Idea
的缓存重启。 - 当仓库中的
jar
包问题混乱时候,可以重新指定maven
的地址,重新拉去jar
包。
Maven 常用命令
mvn clean
运行该命令,会删除项目的target
整个目录。
mvn install
将maven项目,编译、打包到本地仓库。
mvn deploy
将项目进行打包发布到远端仓库中。
mvn compile
编译项目
pom.xml配置
排除依赖中的某个包
- 当项目中的依赖有冲突的时候,可以排除相关的
jar
,可以不用排除,但是因为冲突报错的时候需要排除相关jar
。
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
<version>3.5.0</version>
</dependency>
配置 maven编译的版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
maven 文件资源的配置
<build>
<!-- 构建最终生成项目的名字 -->
<finalName>maven-test</finalName>
<!-- 构建产生的文件存放目录 -->
<directory>./ldtest</directory>
<!-- 项目资源的路径 -->
<resources>
<resource>
<!-- 指定资源文件编译后放置的目录,根目录是target/classes -->
<targetPath>./ldtest/resources</targetPath>
<directory>${basedir}/src/main/resources</directory>
<!-- 筛选需要编译的文件 -->
<includes>
<include>*.xml</include>
</includes>
<!-- 排除之外的文件 -->
<excludes>
<exclude>*.properties</exclude>
</excludes>
</resource>
</resources>
</build>