2.1. Maven安装
2.1.1. 安装准备
安装jdk1.8或以上版本
下载Maven
地址:http://maven.apache.org/download.html
版本:Maven3.5
(ldea对maven 3.6.2及以上版本存在兼容性问题,为避免冲突,IDEA中安装使用maven 3.6.1及以下版本)
安装Maven
解压到相应目录即可(无中文路径)
2.1.2. Maven安装目录分析
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
2.1.3. Maven的环境变量
设置MAVEN_HOME环境变量,把maven的解压后的路径添加为变量值
设置Path环境变量,把 %MAVEN_HOME%\bin 添加到Path的变量值末尾
设置MAVEN_OPTS环境变量,把-Xms128m -Xmx512m添加为变量值
配置全局settings.xml,安装目录下的D:\Program Files\apache-maven-3.5.4\conf\settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.1.4 IDEA中配置maven(全局配置)
项目中字节码版本:
2.1.4 IDEA中创建maven的javase项目
GroupId: 组织名,定义当前Maven项目隶属组织名称(通常是域名反写,例如:cn.tx)
ArtifactId: 模块名,定义当前Maven项目名称(通常是模块名称,例如order-service)
Version: 版本号,定义当前项目版本号
pom.xml添加依赖
maven仓库去查找junit依赖:
地址: https://mvnrepository.com/
添加进pom文件
配置maven运行环境(快捷,方便以后打断点)
可直接点击运行
导入maven项目
maven打包
使用maven-assembly-plugin
(1) 在项目的pom.xml
文件中加入如下插件:
<build>
<plugins>
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<!-- 声明主类的全路径 -->
<mainClass>com.healchow.consumer.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<!-- 配置执行器 -->
<execution>
<id>make-assembly</id>
<!-- 绑定到package命令的生命周期上 -->
<phase>package</phase>
<goals>
<!-- 只运行一次 -->
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
(2) 然后使用Maven的package
命令打包项目;
(3) 打包完成后, 即可在项目的target
目录下看到生成的jar包, 其中xxx-jar-with-dependencies.jar
是包含依赖jar包的jar文件, 另一个不包含依赖jar包;
(4) 使用java -jar xxxx.jar
命令即可运行此jar包.
Maven知识点
依赖传递
idea中查看依赖关系(图表形式展示):pom.xml文件中---右键---Diagrames---Show Dependences
排除依赖
如:A依赖B,B依赖jar包,若不想让A依赖jar包,可在A中排除jar包依赖
依赖范围
maven生命周期