@[TOC]
1 初步标签详解
- project
<!-- 根标签,代表对当前工程进行配置 --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- modelVersion,从maven2开始就一直是4.0.0
<modelVersion>4.0.0</modelVersion>
- groupId(代表公司或组织开发的某一个项目)、artifactId(代表项目下的某个模块)、version(当前模块的版本)
<groupId>com.ruoyi</groupId> <artifactId>ruoyi</artifactId> <version>3.6.1</version>
- packaging:打包方式
<!-- 说明是一个java工程 --> <packaging>jar</packaging> <!-- 说明是一个web工程 --> <packaging>war</packaging> <!-- 说明这个工程是用来管理其他工程的工程 --> <packaging>pom</packaging>
- name(名称)、url(官网地址)、description(项目描述)
<name>ruoyi</name> <url>http://www.ruoyi.vip</url> <description>若依微服务系统</description>
- properties(在Maven中定义属性值)
<ruoyi.version>3.6.1</ruoyi.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version>
- dependencies(配置具体依赖信息)
- dependency(配置单个依赖信息)
scope(当前依赖的范围)
<dependencies> <!-- SpringCloud 微服务 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies>
2 依赖范围
- scope的值:compile、test、provided、system、runtime、import。
- import依赖范围使用要求:打包类型必须是pom、必须放在dependencyManagement中。
- system :这样引入依赖完全不具备有可移植性,所以不要使用。
- runtime:开发阶段不生效,运行阶段生效。
3 maven的生命周期
3.1 clean
1、clean生命周期:清理项目
,包含三个phase。
1)pre-clean:执行清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行清理后需要完成的工作
3.2 site
2、site生命周期:建立和发布项目站点
,phase如下
1)pre-site:生成项目站点之前需要完成的工作
2)site:生成项目站点文档
3)post-site:生成项目站点之后需要完成的工作
4)site-deploy:将项目站点发布到服务器
3.3 default
3、default生命周期:构建项目
,重要的phase如下。
1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
4 POM的四个层次
4.1超级POM
约定了源文件存放的目录、测试源文件存放的目录、构建输出的目录..等等。maven的默认设置,类似java中的object。
4.2父POM
4.3有效POM
所有pom配置存放在一起。
5 版本仲裁和排除jar包
- 最短路径优先
- 路径相同时声明者优先
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.9.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions> </dependency>
6 导出jar包
6.1 新建java工程
新建类和方法,如下:6.2 打开项目结构中的artifacts,选择空
6.3 命名jar包名称并导出
6.4 输出位置
7使用外部jar包
7.1 新建项目,将项目放到根目录
7.2 将该jar包安装到maven仓库
使用install插件的install-file目标:
mvn install:install-file -Dfile=[体系外jar包路径^
-DgroupId=[给jar包强行设定坐标^
-DartifactId=[给jar包强行设定坐标^
-Dversion=1^
-Dpackaging=jar
例如:
mvn install:install-file -Dfile=E:\xinglong\yunfeng\myjar.jar ^
-DgroupId=com.xinglong.myjar ^
-DartifactId=maven-outer ^
-Dversion=1 ^
-Dpackaging=jar
7.3 在新工程中引入该jar包依赖
<dependencies>
<dependency>
<groupId>com.xinglong.myjar</groupId>
<artifactId>maven-outer</artifactId>
<version>1</version>
</dependency>
</dependencies>
7.4 使用jar包中的方法
package com.xinglong.testmaven;
import com.xinglong.jar.Myjar;
public class UseMyjar {
public static void main(String[] args) {
Myjar myjar = new Myjar();
String name = myjar.getName();
System.out.println(name);
}
}
7.5 测试
logic from myjar
进程已结束,退出代码为 0