参考资料:
1.1 在Idea中关联Maven
在全局设置中,关联Maven |
|
1.2 创建Maven项目
1.2.1 新建普通/web项目
新建普通 Maven 项目,要选择 Maven 选项 |
|
如需新建 web 项目,勾选 Cteate from archetype (从原型创建) > 选择 maven-archetype-webapp |
|
1.2.2 指定项目名
GAV 坐标
1.2.3 项目位置
项目位置 |
|
1.2.4 项目结构
- src/main/java 存放源代码,建包,放项目中代码(service,dao,User,….)
- src/main/resources 书写配置文件,项目中的配置文件(jdbc.properties)
不需拼路径可直接被读取
- src/test/java 书写测试代码,项目中测试案例代码
- src/test/resources 书写测试案例相关配置文件
手动创建文件夹时,选择即可
- 根目录/pom.xml (project object model) maven项目核心文件,其中定义项目构建方式,声明依赖等
注意:项目中的建包,建类,执行,都和普通项目无差异
项目结构(test 目录下添加 resources + 设置其文件类型) |
|
1.2.5 项目类型
根据项目类型,在 pom.xml
中做出对应配置,添加配置:<packaging>war/jar</packaging>
1 2 3 4 5 6 7 8 9 10 11 12
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>test01</artifactId> <version>1.0-SNAPSHOT</version>
<packaging>jar</packaging> </project>
|
1.3 导入依赖jar
建好项目后,需要导入需要的jar,要通过坐标
(GAV)
1.3.1 查找依赖
依赖查找服务:https://mvnrepository.com/ ,获得依赖的坐标,在maven项目中导入。
查找依赖坐标 |
|
|
1.3.2 导入依赖
在项目的 pom 文件中,增加依赖。
注意:IDEA中新的项目需要 打开自动导入【Enable-Auto-Import
】,根据依赖自动下载 jar 包到本地仓库并关联到 IDEA 中的当前项目。
在项目的pom.xml文件添加依赖 |
|
1.3.3 同步依赖
引入坐标后,同步依赖,确认导入。
窗口右下角弹窗,刷新依赖,使新加的配置被maven加载 |
|
1.4 创建web项目
1.4.1 打包方式
pom.xml 中设置 <packaging>war</packaging>
注意:packaging 标签中 war 为 web 项目
打包文件后缀,jar 为 java 项目
打包文件后缀。
1.4.2 web依赖
导入 JSP
和 Servlet
和 JSTL
依赖,使项目具有web编译环境。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?xml version="1.0" encoding="UTF-8"?> <project ...> ... <packaging>war</packaging>
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies> </project>
|
1.4.3 webapp目录
按照 maven 规范,新建 web 项目特有目录,packaging 标签必须为 war 类型才能自动识别 webapp 目录。
注意:实际开发中,可在 Maven 项目创建时勾选 Cteate from archetype
(从原型创建) > 选择 maven-archetype-webapp
以直接创建带有 web 项目目录的工程结构。
新建如下目录和文件 |
|
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> </web-app>
|
1.4.4 定义Servlet和Jsp
照常定义即可 |
|
1.5 部署web项目
1.5.1 新增Tomcat
1.5.2 部署web项目
1.5.3 启动Tomcat
启动Tomcat |
|
|
1.6 依赖生命周期
1.1.1 概念
Jar包生效的时间段,即Jar的生命周期。
1.1.2 使用方式
项目中导入的依赖可以通过 <scope>
标签做生命周期的管理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
|
1.1.3 生命周期详解
标识 |
周期 |
compile |
缺省值 ,适用于所有阶段(测试运行,编译,运行,打包) |
provided |
类似compile,期望JDK、容器或使用者会提供这个依赖 。如servlet-api.jar;适用于(测试运行,编译)阶段 |
runtime |
只在运行时使用 ,如 mysql的驱动jar,适用于(运行,测试运行)阶段 |
test |
只在测试时使用 ,适用于(编译,测试运行)阶段,如 junit.jar |
system |
Maven不会在仓库中查找对应依赖,在本地磁盘目录中查找;适用于(编译,测试运行,运行)阶段 |
1.7 Maven指令
通过Idea打开 Terminal
,然后执行Maven指令。
打开 cmd,并定位到项目目录 |
|
执行maven指令 |
|
Idea中有Maven面板,其中可以快速执行Maven指令。
maven面板 |
|