Maven 配置方法
初始化maven
把maven文件的bin目录路径添加到 此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 编辑系统变量中的Path变量 -> 新建路径
绑定maven和IDEA
在IDEA的settings中搜索maven 修改maven home path为本地的maven路径即可
Maven的项目结构
Maven依赖管理
Maven利用dependency(依赖)自动下载、管理第三方Jar
在pom.xml文件中配置项目依赖的第三方组件
maven自动将依赖从中央仓库下载至本地仓库,并在工程中引用
Maven的依赖坐标系
Groupld:机构或者团体的英文,采用"逆向域名"形式书写
Artifactld:项目名称,说明其用途,例如: cms、oa…
Version:版本号,一般采用"版本+单词"形式,例如:1.0.0.RELEASE
Maven搜索组件网址
search.maven.org
Maven依赖例子代码
<dependencies>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
添加阿里云镜像仓库
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
Maven的生命周期
validate:
验证项目是否正确且所有必须信息是可用的
compile:
源代码编译在此阶段完成
test:
运行test目录下的测试代码验证src下源代码的逻辑
package:
生成产出物jar、war文件
verify:
运行任意的检查来验证项目包有效且达到质量标准
install:
安装打包的项目到本地仓库,以供其他项目使用
deploy:
拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
clean:
清除target路径文件
Maven在编译的时候使用指定的字符集进行读取
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Maven的插件技术
Maven插件为构建项目提供了功能扩展的能力
maven-assembly-plugin是Maven打包插件,用于构建FatJar
FatJar是指将所有依赖包装为独立可运行的Jar
<!--maven-assembly-plugin插件配置-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<!-- 指定要打包的类 -->
<configuration>
<archive>
<manifest>
<mainClass>com.imooc.maven.jdbc.jdbcSample</mainClass>
</manifest>
</archive>
<descriptorRefs>
<!-- 打包时会将所有引用的jar合并到输出的jar文件中 -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
<!--插件阿里云镜像仓库配置-->
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</pluginRepository>
</pluginRepositories>
Maven属性管理
标签中添加新的标签并在依赖中通过${}进行引用,可以进行版本管理之类的属性管理
<properties>
<mysql.jdbc.version>8.0.29</mysql.jdbc.version>
<properties>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.jdbc.version}</version>
</dependency>