maven简介
maven是一个项目管理工具,基于项目对象模型(POM Project Object Model)来管理项目的构建、报告和文档信息
使用maven构建项目
使用maven命令构建一个maven项目
1 | mvn archetype:generate -DgroupId=com.zhanghe -DartifactId=test -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0-SNAPSHOT |
DarchetypeArtifactId: 表示项目骨架,常用的有两种
- maven-archetype-quickstart 普通的java项目
- maven-archetype-webapp java web项目
项目目录结构
默认结构
项目源码:src/main/java
资源目录: src\main\resources
Web 项目源码:src/main/webapp
测试源码:src/test/java
Maven 项目结构(Project Object Model POM):pom.xml
1
2
3
4
5
6
7
8
9目录结构
src 源码 主程序
main
- java 源文件
- resources 框架配置文件
test
- java
- resources
pom.xml
自定义结构
可以在<build>
节点中<sourceDirectory>
指定源码目录 <resources>
指定资源目录
依赖坐标
坐标
groupid: 公司域名倒叙+项目名
artifactid: 模块名
version: 版本
packaging: 打包方式
classifer: 定义输出的一些附件
设置属性
1 | <properties> |
maven仓库
maven仓库是指存放maven依赖jar包的位置
本地仓库:存储在本地电脑的,在使用maven时,会先从本地仓库获取,如果本地仓库没有,才会去远程仓库去下载并保存在本地,可以在settings.xml中配置本地仓库的位置
<localRepository>本地仓库位置</localRepository>
中央仓库:由maven官方提供的仓库,不过由于maven的中央仓库在国外,可以使用仓库的镜像
在settings.xml中配置
1
2
3
4
5
6
7
8<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
远程仓库:
私服:局域网内由公司内部搭建,定制的仓库
其他远程仓库:其他公司的定制的仓库
可以在pom.xml中进行配置
1
2
3
4
5
6
7
8
9
10
11
12<repository>
<id>archiva.internal</id>
<name>Internal Release Repository</name>
<url>http://zhhll.com/nexus/content/repositories/releases/
</url>
</repository>
<snapshotRepository>
<id>archiva.snapshots</id>
<name>Internal Snapshot Repository</name>
<url>http://zhhll.com/nexus/content/repositories/snapshots/
</url>
</snapshotRepository>