- idea
放到Web-Content/lib下,只在运行阶段生效。
放到src/lib下,只在开发时生效。
- eclipse
放到Web-Content/lib下,认为全部生命周期都有效。
- maven
一:什么是Maven,有什么好处
基于java平台的自动化构建工具
步骤 | 说明 |
清理 | 重新编译 |
编译 | java->class |
测试 | 测试人员编写测试代码 |
报告 | 测试结果进行显示 |
打包 | 多个文件压缩成一个文件 |
安装 | 将打成的包放到本地仓库 |
部署 | 将打成的包放到服务器上运行 |
- 管理jar包
1.增加第三方jar包
2.jar包的依赖关系
自动关联下载所需的jar包,不会冲突
- 将项目拆分为若干个模块
二:maven配置
conf/settings.xml
localRepository
The path to the local repository maven will use to store artifacts.
<!-- |默认仓库位置-->
Default: ${user.home}/.m2/repository
<!-- 本地仓库-->
<localRepository>/path/to/local/repo</localRepository>
三:maven核心概念
- 坐标
groupId | 组织标识(包名) |
artifactId | 项目名称 |
version | 项目的当前版本 |
packaging | 项目的打包方式,最为常见的jar和war两种 |
- 依赖
A依赖于B,B依赖于C,A依赖于C,仅当C的范围为compile。
依赖调解:最短路径优先原则,第一声明者优先。
依赖的范围 | |
范围 | 说明 |
compile(默认) | 编译阶段 |
test | 测试阶段 |
provided | 运行阶段 |
compile | test | provided |
编译 | √ | ☓ |
测试 | √ | √ |
部署(运行) | √ | ☓ |
- 仓库
1.本地仓库
部署在自己电脑上的仓库,优先读取。
2.中央仓库
由第三方机构管理,如maven,ali
https://mvnrepository.com/ https://maven.aliyun.com/repository/public
2.远程仓库
开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件,最后读取。
- 主要生命周期
clear->compile->test->package
四:常用命令
mvn compile #编译java代码(只编译main目录里面的)
mvn test #执行测试程序
mvn package #打成jar(war)包
mvn install #将开发模块往本地仓库上放,供其他人员使用
mvn clear #删除target目录(删除编译文件的目录)
五:Maven的继承实现
1.建立父工程,打包方式为pom
2.在父工程的pom.xml编写依赖
<!-- 父工程的依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
</dependency>
</dependencies>
</dependencyManagement>
3.子工程继承,并声明需要使用那些jar包
<parent>
<!-- 加入父工程的gav,如果相同可省略 -->
<groupId>Maven</groupId>
<artifactId>Father</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 找到父工程的pom -->
<relativePath>../Son/pom.xml</relativePath>
</parent>
<!-- 声明需要使用那些jar包 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
六:maven的聚合
<modules>
xxx为项目的根路径
<module>xxx</module>
<modules>
只能设置为打包方式为pom
七:eclipse中使用maven
配置maven版本,配置本地仓库
window->preferences->maven->UserSetting
在pom.xml添加依赖后,需要update project
选中pom.xml,点击Run As->Maven build…
maven只识别以Test,或者TestCase结尾的java文件
八:部署
mvn depoly