Maven 入门

1. 概述

  1. Maven 项目中需要某一个jar包,只需要在maven项目中配置所需jar包信息;maven程序根据jar包坐标信息
    去 jar包仓库中查找jar包;
  2. jar包坐标,以struts2-core-2.3.24.jar为例
    • Apache(公司名称)+struts2(项目名称)+2.3.24(版本信息);

2. Maven 的两大核心

  1. 依赖管理: 对jar包的统一管理;
  2. 项目构建: 项目编码完成后,对项目进行编译,测试,打包和部署等一系列操作都可以通过命令来实现;

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 项目的生命周期

  1. 在 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 创建完成后,出现两个错误:
  1. 缺少web.xml文件
    • 创建web.xml文件: src/main/webapp/WEB-INF/web.xml;
  2. 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>

参考资料

原文地址:https://www.cnblogs.com/linkworld/p/7750147.html