文章目录
1.Maven基础
1.特点
依赖管理
一键构建
2.三种仓库
本地仓库
远程仓库(私服)
中央仓库
3.常见命令
Compile 编译项目代码
Test 运行单元测试
Package 打包项目
Install 打包后将其安装在本地仓库
Deploy 打包后将其安装到pom文件中配置的远程仓库
Clean 清除编译产生的target文件夹内容
4.坐标的书写规范及如何得到坐标
坐标的书写规范
<dependency>
<!-- 只是例子并不存在这样的坐标哦 -->
<groupId>com.demo</groupId>
<artifactId>demo</artifactId>
<version>x.x</version>
<scope>test</scope>
</dependency>
1.groupId公司或组织域名的倒序
2.artifactId项目名或模块名
3.version版本号
(4可不写,没写默认为compile)
4.依赖范围
Compile 默认依赖范围,此依赖范围对于编译、测试、运行三种都有效
Test 只对测试有效,在编译主代码和项目运行时,都将无法使用该依赖
Provided 只对编译和测试有效,对运行无效
Runtime 只对测试和运行的classpath有效,对编译的无效
如何得到坐标
https://mvnrepository.com/
中搜索想要的包名字选择版本就行了
2.Maven高级
1.将SSM工程拆分为多个模块开发
就像这样
通常继承和聚合同时使用。
何为继承?继承是为了消除重复,如果将dao、service、web分开创建独立的工程则每个工程的pom.xml文件中的内容存在重复,比如:设置编译版本、锁定spring的版本的等,可以将这些重复的配置提取出来在父工程的pom.xml中定义。
何为聚合?项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web三个工程最终会打一个独立的war运行。
2.搭建远程仓库(私服)
公司在自己的局域网内搭建自己的远程仓库服务器,称为私服,私服服务器即是公司内部的maven远程仓库,每个员工的电脑上安装maven软件并且连接私服服务器,员工将自己开发的项目打成jar并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。私服还充当一个代理服务器,当私服上没有jar包会从互联网中央仓库自动下载,如下图:
使用nexus实现
如果是在自己电脑搭建安装
访问路径: http://localhost:8081/nexus/ (注意检查nexus是否运行,管理–>服务可看)
使用Nexus 内置账户admin/admin123登陆
1.将项目发布到私服
maven 配置文件settings.xml
server部分加入
根据工程的版本号决定上传到哪个宿主仓库
releases 连接发布版本项目仓库
snapshots 连接测试版本项目仓库
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
配置项目pom.xml
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
执行deploy
2.从私服下载项目
maven会先从本地仓库找,本地仓库没有再从私服找,私服没有再去中央仓库下载,jar包下载成功在私服、本地仓库分别存储一份
不用做什么
3.第三方jar包放入本地仓库和私服
当然不可以直接放在目录下了
参数说明
DgroupId和DartifactId构成了该jar包在pom.xml的坐标,项目就是依靠这两个属性定位。
Dfile表示需要上传的jar包的绝对路径。
Durl私服上仓库的位置,打开nexus——>repositories菜单,可以看到该路径。DrepositoryId服务器的表示id,在nexus的configuration可以看到。
Dversion表示版本信息,
关于jar包准确的版本:包的名字上一般会带版本号,如果没有那可以解压该包,会发现一个叫MANIFEST.MF的文件,这个文件就有描述该包的版本信息
放入本地仓库
----进入jar包所在目录cmd运行
mvn install:install-file -DgroupId=com.demo -DartifactId=demo -Dversion=x.xx.x -Dfile=xxx.jar -Dpackaging=jar
放入私服
maven 配置文件settings.xml
server部分加入
<server>
<id>thirdparty</id>
<username>admin</username>
<password>admin123</password>
</server>
----进入jar包所在目录运行
mvn deploy:deploy-file -DgroupId=com.demo -DartifactId=demo -Dversion=x.xx.x -Dpackaging=jar -Dfile=xxx.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
上传成功后,在nexus界面点击3rd party仓库可以看到这包了