一、介绍
一个工具
maven的功能
1. 项目需求管理
项目中jar包资源越来越多,jar包的管理越来越沉重。
jar包 和版本
java项目需要一个统一的便捷的管理工具:Maven (这里是Maven按照自己的格式建项目,不是我们)
交互式
非交互式
2. maven项目结构可以转换成其他任意结构(如 Web—war, java—jar)
二、介绍
Maven这个单词来自于意第绪语(犹太语),意为知识的积累.
Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来管理java项目,进行依赖管理(jar包依赖管理)和项目构建(项目编译、打包、测试、部署)。此外还能分模块开发,提高开发效率。
镜像是我们下jar包的地方 仓库是我们上传jar包的地方
三、配置Maven
1、本地仓库
maven的conf目录中有 settings.xml ,是maven的配置文件,做如下配置:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- 选择一个磁盘目录,作为本地仓库 -->
<localRepository>D:\Program Files\maven\myrepository</localRepository>
四、仓库
1.概念
存储依赖的地方,体现形式就是本地的一个目录。
仓库中不仅存放依赖,而且管理着每个依赖的唯一标识(坐标),Java项目凭坐标获取依赖。
2.仓库分类
当需要依赖时,会从仓库中取查找,优先顺序为:
本地仓库 > 私服(如果配置了的话) > 公共仓库(如果配置了的话) > 中央仓库
3.本地仓库
即在settings.xml 中配置的目录。
使用过了的依赖都会自动存储在本地仓库中,后续可以复用。
4.远程仓库
包含:中央仓库和公共仓库
(1) 中央仓库
Maven 中央仓库是由 Maven 社区提供的仓库,不用任何配置,maven中内置了中央仓库的地址。
其中包含了绝大多数流行的开源Java构件。
https://mvnrepository.com/ 可以搜索需要的依赖的相关信息(仓库搜索服务)
http://repo.maven.apache.org/maven2/ 中央仓库地址
(2) 公共仓库【重点】
除中央仓库之外,还有其他远程仓库。比如aliyun仓库(http://maven.aliyun.com/nexus/content/groups/public/)
中央仓库在国外,下载依赖速度过慢,所以都会配置一个国内的公共仓库替代中央仓库。
<!--setting.xml中添加如下配置-->
<mirrors>
<mirror>
<id>aliyun</id>
<!-- 中心仓库的 mirror(镜像) -->
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>nexus-my</id>
<mirrorOf>central</mirrorOf>
<name>Nexus My</name>
<url>http://192.168.3.16:8081/repository/maven-central/</url>
</mirror>
</mirrors>
设置库的位置:
配置用户名密码:
镜像:
(3) 私服【了解】
公司范围内共享的仓库,不对外开放。
可以通过 Nexus来创建、管理一个私服。
五、创建Maven项目
1、新建项目,要选择 Maven 选项
2、指定项目名
3、项目位置
4、项目结构
src/main/java 存放源代码,建包,放项目中代码(service,dao,User,....)
src/main/resources 书写配置文件,项目中的配置文件(jdbc.properties)
src/test/java 书写测试代码,项目中测试案例代码
src/test/resources 书写测试案例相关配置文件
目根/pom.xml (project object model) maven项目核心文件,其中定义项目构建方式,声明依赖等
注意:项目中的建包,建类,执行,都和普通项目无差异
5、项目类型
根据项目类型,在pom.xml中做出对应配置,添加配置:<packaging>war/jar</packaging>
<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.qf</groupId>
<artifactId>test01</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 打包方式,如果是java项目则用 jar,
如果是web项目则用war -->
<!--<packaging>war</packaging>-->
<packaging>jar</packaging>
</project>
六、总结
1.maven
项目依赖管理
maven项目可以转换为其他项目格式
2.maven的运行流程
先去本地仓库找需要jar包, 找不到去远程仓库下载
默认的本能地仓库 用户目录下的 .m2文件夹下
3.settings 文件的配置
本地仓库位置
server标签
mirror 配置镜像
4.pom文件
modelVersion
groupId
artifactId
version
packaging : pom jar war
properties
dependencies/dependency
dependencyManagement/dependencies/dependency
distributionManagement /repository snapshotRepository
build/plugins/plugin
5.命令
clean : 清理
package : 打包
install : 部署到本地
deploy : 部署到远程仓库
6.scope
jar包的生命周期
表明当前jar存在的时间
7.nexus库的安装使用
下载软件, 解压
找到 nexus-3xx /bin 运行 nexus /install nexus /start (启动时间较长, 稍等)
第一次登陆密码 在snapshot /nexus3/admin.password