-
概念:
- Maven 是跨平台的项目管理工具。主要服务基于 Java 平台的构建,依赖管理和项目信息管理
- 项目构建:高度自动化,跨平台,可重用的组件,标准化的流程
-
依赖管理:
- 对第三方依赖包的管理,可以连接互联网下载项目所需第三方 jar 包
- 对自己开发的模块的管理,可以像引用第三方依赖包一样依赖自己项目的依赖包
-
项目构建:
- 项目构建:从编写源代码到编译、测试、运行、打包、部署的过程
- 传统项目和 Maven 项目架构的两种方式
- 传统方式:
- IDEA 编写源代码和配置文件,对源代码进行编译,可以使用 Junit 进行单元测试,把项目打成 war 包,部署到 Tomcat 服务器中运行
- Maven 项目:
- Maven 将项目构建过程进项标准化,每个阶段都可以使用一个命令来完成
- 清理 ==> 编译 ==> 测试 ==> 报告 ==> 打包 ==> 部署
- 传统方式:
- 好处:
- 可以通过命令完成构建。(测试:使用 mvn tomcat:run 的命令来运行项目)
- Maven 对每个构建阶段进行规范,有利于大型团队协作开发
-
Maven 模型:
Maven 的第一个项目:
-
创建Maven 项目目录(注意以下所有引用包路径,设置成自己的包路径):
- src/main/java ----存放项目的 .java 文件
- src/main/resoutces ---存放项目资源文件,如 Spring,MyBatis 配置文件
- src/test/java ---存放所有测试 .java 文件,如 JUnit 测试类
- src/test/resource ---测试资源文件
- target ---项目输出位置
- pom.xml
-
在项目 HelloFriend 根目录创建 pom.xml
<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>cn.tx.maven</groupId><artifactId>Hello</artifactId><version>0.0.1-SNAPSHOT</version><name>Hello</name><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope></dependency> </dependencies> </project>
-
创建 Hello.java 文件
package 自己的包路径; public class Hello {public StringsayHello(String name){return"Hello "+name+"!";} }
-
创建 HelloTest.java 文件
- 在 src/test/java/···/maven 目录下新建测试文件 HelloTest.java
package 包路径; import org.junit.Test; import static junit.framework.Assert.*; public class HelloTest {@Testpublic void testHello(){Hello hello = newHello();String results =hello.sayHello("maven");assertEquals("Hellomaven!",results); } }
- 在 src/test/java/···/maven 目录下新建测试文件 HelloTest.java
-
进行 Maven 的项目操作:
- 当前文件情况:
- 打开 cmd(可能需要管理员模式),进入 Hello 项目根目录执行 mvn compile 命令,查看根目录变化
- cmd 中继续录入 mvn clean 命令,然后再次查看根目录变化
- cmd 中继续录入 mvn clean compile 命令,然后再次查看根目录变化
- cmd 中录入 mvn clean test 命令,查看根目录变化
- cmd 中录入 mvn clean package 命令,查看根目录变化
- cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里