什么是坐标?
Maven中的坐标用于描述仓库中资源的位置
https://repo1.maven.org/maven2/
Maven坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactId:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
Maven坐标的作用
使用唯一表示,唯一性定位资源位置,通过该表示可以将资源的识别与下载工作交由机器完成
Maven启动后,会自动保存下载的资源到本地仓库
默认位置:
<localRepository>${user.home}/.m2/repositorylocalRepository>
自定义位置:
<localRepository>D:\maven\repositorylocalRepository>
Maven默认连接的仓库位置
<repositories>
<repository>
<id>centralid>
<name>Central Repositoryname>
<url>https://repo.maven.apache.org/maven2url>
<layout>defaultlayout>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
在setting文件中配置阿里云镜像仓库
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖
格式:
<dependencies>
<!—- 设置具体的依赖-->
<dependency>
<!—- 依赖所属群组id-->
<groupId>junitgroupId>
<!—- 依赖所属项目id-->
<artifactId>junitartifactId>
<!—- 依赖版本号-->
<version>4.12version>
dependency>
dependencies>
可选依赖指对外隐藏当前所依赖的资源——不透明
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
<optional>trueoptional>
dependency>
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本——不需要
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
<exclusions>
<exclusion>
<groupId>org.hamcrestgroupId>
<artifactId>hamcrest-coreartifactId>
exclusion>
exclusions>
dependency>
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围
插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
默认maven在哥哥生命周期上绑定有预设的功能
通过插件可以自定义其他功能
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<version>2.2.1version>
<executions>
<execution>
<goals>
<goal>jargoal>
goals>
<phase>generate-test-resourcesphase>
execution>
executions>
plugin>
plugins>
build>
作用:聚合用于快速构建maven工程,一次性构建多个项目模块
制作方式:
<packaging>pompackaging>
<modules>
<module>../ssm_controllermodule>
<module>../ssm_servicemodule>
<module>../ssm_daomodule>
<module>../ssm_pojomodule>
modules>
注意:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
作用:通过继承可以实现在子工程中沿用父工程中的配置
制作方式:
<parent>
<groupId>com.itheimagroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<relativePath>../ssm/pom.xmlrelativePath>
parent>
继承依赖定义
在父工程中定义依赖管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.1.9.RELEASEversion>
dependency>
<dependencies>
<dependencyManagement>
继承依赖使用
在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
dependency>
dependencies>
继承与聚合
作用:
定义格式
<properties>
<spring.version>5.1.9.RELEASEspring.version>
<junit.version>4.12junit.version>
properties>
调用格式
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>${spring.version}version>
dependency>
作用
调用格式:
${basedir}
${version}
作用
调用格式:
${settings.localRepository}
作用
调用格式
${user.home}
系统属性查询方式
mvn help:system
作用
调用格式
${env.JAVA_HOME}
环境变量属性查询方式
mvn help:system
工程版本
工程版本号约定
资源配置多文件维护
<properties>
<spring.version>5.1.9.RELEASEspring.version>
<junit.version>4.12junit.version>
properties>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>${junit.version}version>
dependency>
配置文件引用pom属性
作用
调用格式
${jdbc.url}
开启配置文件加载pom属性
<resources>
<resource>
<!—-设定配置文件对应的位置目录,支持使用属性动态设定路径-->
<directory>${project.basedir}/src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
<profiles>
<profile>
<id>pro_envid>
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_dbjdbc.url>
properties>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
<profile>
<id>dev_envid>
……
profile>
profiles>
作用
调用格式
mvn 指令 –P 环境定义id
范例
mvn install –P pro_env
命令
mvn 指令 -D skipTests
注意事项
<plugin>
<artifactId>maven-surefire-pluginartifactId>
<version>2.22.1version>
<configuration>
<skipTests>trueskipTests>
<includes>
<include>**/User*Test.javainclude>
includes>
<excludes>
<exclude>**/User*TestCase.javaexclude>
excludes>
configuration>
plugin>
Nexus是Sonatype公司的一款maven私服产品
下载地址:https://help.sonatype.com/repomanager3/download
Nexus安装、启动与配置
启动服务器(命令行启动)
nexus.exe /run nexus
访问服务器(默认端口:8081)
http://localhost:8081
修改基础配置信息
修改服务器运行配置信息