1. 概述
- Maven 项目中需要某一个jar包,只需要在maven项目中配置所需jar包信息;maven程序根据jar包坐标信息
去 jar包仓库中查找jar包; - jar包坐标,以
struts2-core-2.3.24.jar
为例- Apache(公司名称)+struts2(项目名称)+2.3.24(版本信息);
2. Maven 的两大核心
- 依赖管理: 对jar包的统一管理;
- 项目构建: 项目编码完成后,对项目进行编译,测试,打包和部署等一系列操作都可以通过命令来实现;
3. 仓库分类
4. maven 项目目录
src
: 项目源码;pom.xml
: maven 项目核心配置文件;(project object model)target
: 项目源码编译完成后的文件;
5. maven 的常用命令
mvn clean
: 删除项目目录下生成的class文件,也就是target目录;mvn compile
: 编译,将项目中.java
文件编译成class文件,即target目录;mvn test
: 执行单元测试;单元测试类名要求:XxxxTest.java
;mvn package
: 打包;Web项目生成war包, Java项目生成jar包;mvn install
: 安装,将自定义jar包导入到本地仓库;可以解决本地多个项目共用一个jar包;
5.1 maven 项目的生命周期
- 在 maven 中存在"三套"生命周期,每一套生命周期相互独立,互不影响;
- CleanLifeStyle: 清理生命周期,包括: clean;
- defaultLifeStyle: 默认生命周期,包括: compile,test,package,install,deploy;
- siteLifeStyle: 站点生命周期,包括: site, 生成一个关于本项目信息的html文档;
- 在一套生命周期内,执行后面的命令,前面的操作会自动执行;例如,执行package时,compile,test也会自动执行;
6. Maven整合Web项目
6.1 Eclipse配置maven程序
6.2 Eclipse 中配置maven本地仓库,即配置 settings.xml
6.3 构建索引,提高检索速度("window-->show view")
6.4 Maven 整合 Servlet
6.4.1 创建项目
Maven Project
: 创建普通 maven项目或者父工程;Maven Module
: 创建子模块;
6.4.2 创建完成后,出现两个错误:
- 缺少web.xml文件
- 创建web.xml文件:
src/main/webapp/WEB-INF/web.xml
;
- 创建web.xml文件:
- JDK 编译版本为 1.5
- 在 pom.xml 中添加插件
- 然后updateProject
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
6.4.3 创建 Servlet, 编译报错,缺失servlet-api-xx.jar
包
6.4.4 Jar 包依赖范围
compile
: 默认依赖范围,会用在编译,测试,运行时;provided
: 该依赖在编译和测试时需要,在运行时不需要; 例如: servlet-api 被tomcat容器提供;runtime
: 该依赖在运行和测试系统是需要,但在编译时不需要;test
: 该依赖只有在测试是需要;system
: 该依赖不推荐使用;
6.4.5 运行项目
6.4.6 调试运行
7. Maven 整合Struts2
7.1 生成 web.xml, 配置JDK版本
7.2 添加Struts2依赖
7.3 创建其他文件
- 创建 struts.xml;
- 创建 action 类;
- 在 web.xml 中配置 struts2 核心过滤器;
8. 导入依赖的原则
- 在使用依赖的最底层导入;
- 运行时,所需要的依赖在web工程中加入;
- 所有的工程都需要的依赖,应该在聚合工程中导入;
<dependencyManagement>
</dependencyManagement>
参考资料