打包
管理依赖,联网下载
项目结构更清晰
main:源码结构
java:java文件
resources:配置文件
test:测试目录
java:测试的java
resources:配置用到的配置文件
pom.xml:maven工程
target:目标,目的地
Maven有三个生命周期:
Maven有三个内置的生命周期
默认(default):进行项目的编译和打包
验证(validate):验证当前项目是否正确
编译(compile):编译项目的源代码
测试(test):使用单元测试测试编译的源代码
打包(package):利用编译的源代码,打包成相应的格式的包,jar/war
清理(clean):删除target目录
验证(verify):对测试结果进行检查
安装(install):把我们自己写的一些项目,安装到本地仓库,其他项目可以进行引用。
部署(deploy):私服。jar从maven中央仓库下载下来。
清理(clear):删除target目录
站点(site):生成项目报告,站点,发布站点
通过这么几个要素来定位一个项目(jar包),坐标
Groupld:团体,组织id。包名
ArtifactId:项目名。mysql-connector-java.jar
Version:版本号 com.mysql mysql-connector-java 5.1.1
<dependencies><!---Mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version><scope>runtime</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>
SNAPSHOP:快照版
LATEST:发布版本
依赖的范围:
scope标签就代表依赖的范围
test:测试。只有在test环境下才生效。不参与打包和编译。
compile:编译。编译、测试、运行。参与打包。(默认编译的范围)
runtime:运行时,参与打包
provided:编译,运行,不参与打包
依赖的传递:
我们的工程A.jar----->依赖于mysql.jar
B.jar--------->依赖于A.jar,同样会引入mysql.jar
传递的原则
最短路径优先
路径相同先声明原则
依赖的排除
<exclusions><exclusion><groupId>org.hamcrest</groupId><artifactId>hamcrest</artifactId></exclusion>
</exclusions>
<description>项目的描述信息</description>
packaging标签:
jar:默认格式
war:JavaWEB工程
pom:复合工程