Maven 使用
Maven 使用
一、下载maven
1.maven官网下载
2.maven配置环境变量
二、maven项目构建命令
mvn clean #清理
mvn compile #编译
mvn package #打包
mvn install #安装到本地仓库
Maven构建命令使用mvn开头,后面可以添加多个参数,中间用空格分隔。如:mvn compile package
三、maven-pom配置
1.pom默认配置
<?xml version="1.0" encoding="UTF-8"?>
<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">
</project>
grpupId maven项目归属组织名“域”(通常是域名反写,如:org. apache )
artifactId maven项目名称
version maven项目版本号
packaging maven项目的打包方式(常用:jar、war、pom,默认jar)
2.项目聚合
<?xml version="1.0" encoding="UTF-8"?>
<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>4.0.0</modelVersion>
<groupId>com.zsq.test</groupId>
<artifactId>test-server</artifactId>
<version>1.0-SNAPSHOT</version>
<!--定义该项目用户进行构建管理-->
<packaging>pom</packaging>
<!--管理的项目列表-->
<modules>
<!--具体的项目名称-->
<module>test-client</module>
<module>test-service</module>
</modules>
</project>
3.项目继承
父项目配置信息
<?xml version="1.0" encoding="UTF-8"?>
<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>4.0.0</modelVersion>
<groupId>com.zsq.test</groupId>
<artifactId>test-server</artifactId>
<version>1.0-SNAPSHOT</version>
<!--此处声明依赖管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
子项目配置信息
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--定义当前项目的父级项目-->
<parent>
<groupId>com.zsq.test</groupId>
<artifactId>test-server</artifactId>
<version>1.0-SNAPSHOT</version>
<!--填写父项目的pom文件-->
<relativePath>pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test-service</artifactId>
<!--为了和父项目分组和版本项目可以不写分组id和版本号,默认和父项目相同-->
<!--<groupId>com.zsq.test</groupId>-->
<!--<version>1.0-SNAPSHOT</version>-->
<!--引用父级项目依赖可以不写版本号,默认使用父项目依赖版本信息-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
4.自定义属性
<!--配置自定义属性-->
<properties>
<spring.version>2.5.1</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!--调用自定义属性-->
<version>${spring.version}</version>
</dependency>
</dependencies>
四、版本管理
1.项目版本
SNAPSHOT(快照版本)
1>项目开发过程中,因方便团队合作,解决模块间相互依赖和实时更新的问题,
开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
2>快照版本会随着开发的进行不断更新
RELEASE(发布版本)
1>项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,
即便进行功能的后续开发,也不会改变当前发布的版本信息,这种版本号成为发布版。
2.版本号
格式:<主版本>.<次版本>.<增量版本>.<里程碑版本> 如:2.0.0.RELEASE
主版本:表示项目架构的重大变更。
次版本:表示有较大的功能增加和变化,或者全面系统修复漏洞。
增量版本:表示有重大漏洞的修复
里程碑版本:表示一个版本的里程(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待跟多的测试。
五、私服
1.Nexus下载
Nexus是Sonatype公司的一款maven私服产品
下载地址:https://help.sonatype.com/repomanager3/download
2.Nexus使用
2.1解压Nexus
2.2启动Nexus
nexus.exe /run #启动命令
2.3访问Nexus
http://localhost:8081
2.4登录Nexus
2.5Nexus配置文件
修改基本配置信息
安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,列如默认访问端口
修改服务器运行配置信息
安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,列如默认占用内存空间
2.6仓库分类简介
1>宿主仓库hosted
保存无法从中央仓库获取的资源,如自主研发、第三方非开源项目
2>代理仓库proxy
代理远程仓库,通过nexus访问其他公共仓库,列如中央仓库
3>仓库组group
将若干个仓库组成一个群组,简化配置
仓库组不能保存资源,属于设计型仓库
2.7创建maven仓库
将新建的仓库配置到公开仓库组中
2.8上传依赖
2.8.1.手动上传
2.8.2.idea上传和下载
2.8.2.1配置Nexus信息
<!--在maven的settings.xml中的配置-->
<!--配置nexus的用户名和密码-->
<servers>
<server>
<!--唯一标记,随便写,但是最好和私服名称相同-->
<id>zsq-releases</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
2.8.2.2配置nexus路径
<!--配置nexus访问私服路径-->
<mirrors>
<mirror>
<!--验证id,上面用户密码的id-->
<id>zsq-releases</id>
<!--表示获取所有依赖-->
<mirrorOf>*</mirrorOf>
<!--设置私服仓库路径-->
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
2.8.2.2配置idea发布信息
<!--项目pom.xml文件发布配置管理-->
<distributionManagement>
<!--配置正式版仓库配置-->
<repository>
<!--settings.xml中配置Nexus信息的server的id-->
<id>zsq-releases</id>
<!--访问Nexus信息url路径-->
<url>http://localhost:8081/repository/zsq-releases/</url>
</repository>
<!--配置快照版仓库配置,和上边的流程相同-->
<!--
<snapshotRepository>
<id>zsq-snapshots</id>
<url>http://localhost:8081/repository/zsq-snapshots/</url>
</snapshotRepository>
-->
</distributionManagement>