Maven基础使用入门,读完这篇就够了
Maven
- 1. Maven简介
- 2. Maven安装
- 3. 使用Maven(命令行环境)
-
- 3.1 根据坐标创建Maven工程
- 3.2 执行 Maven 的构建命令
- 3.3 依赖
- 4. 使用Maven(IDEA)
1. Maven简介
Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。
Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮我们自动下载构件。
2. Maven安装
教程参考
3. 使用Maven(命令行环境)
3.1 根据坐标创建Maven工程
- 坐标
(1)groupId:公司或组织的 id。如:com.atguigu.maven
(2)artifactId:一个项目或者是项目中的一个模块的 id,即作为 Maven 工程的工程名
(3)version:版本号 - 使用命令生成Maven工程
mvn archetype:generate
例如:
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7:【直接回车,使用默认值】Define value for property 'groupId': com.atguigu.mavenDefine value for property 'artifactId': pro01-maven-javaDefine value for property 'version' 1.0-SNAPSHOT: :【直接回车,使用默认值】Define value for property 'package' com.atguigu.maven: :【直接回车,使用默认值】Confirm properties configuration: groupId: com.atguigu.maven artifactId: pro01-maven-java version: 1.0-SNAPSHOT package: com.atguigu.maven Y: :【直接回车,表示确认。如果前面有输入错误,想要重新输入,则输入 N 再回车。】
- 自动生成的pom.xml文件解读
<groupId>com.atguigu.maven</groupId> <artifactId>pro01-maven-java</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>pro01-maven-java</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
- Maven核心概念:POM
POM:Project Object Model,项目对象模型。和 POM 类似的是:DOM(Document Object Model),文档对象模型。它们都是模型化思想的具体体现。
POM 理念集中体现在 Maven 工程根目录下 pom.xml 这个配置文件中。所以这个 pom.xml 配置文件就是 Maven 工程的核心配置文件。其实学习 Maven 就是学这个文件怎么配置,各个配置有什么用
3.2 执行 Maven 的构建命令
mvn -v 需要用管理员权限打开cmd或powershell
- 清理操作
mvn clean
效果:删除 target 目录 - 编译操作
主程序编译:mvn compile
测试程序编译:mvn test-compile
主体程序编译结果存放的目录:target/classes
测试程序编译结果存放的目录:target/test-classes - 测试操作
mvn test
测试的报告存放的目录:target/surefire-reports - 打包操作
mvn package
打包的结果——jar 包,存放的目录:target - 安装操作
mvn install
- 其它命令
(1)查看当前 Web 工程所依赖的 jar 包的列表
mvn dependency:list
(2)以树形结构查看当前 Web 工程的依赖信息
mvn dependency:tree
3.3 依赖
标签的位置:dependencies/dependency/scope
标签的可选值:compile/test/provided/system/runtime/import
1. compile:通常使用的第三方框架的 jar 包这样在项目实际运行时真正要用到的 jar 包都是以 compile 范围进行依赖的。比如 SSM 框架所需jar包。
2. test:测试过程中使用的 jar 包,以 test 范围依赖进来。比如 junit。
3. provided:在开发过程中需要用到的“服务器上的 jar 包”通常以 provided 范围依赖进来。比如 servlet-api、jsp-api。而这个范围的 jar 包之所以不参与部署、不放进 war 包,就是避免和服务器上已有的同类 jar 包产生冲突,同时减轻服务器的负担。说白了就是:“服务器上已经有了,你就别带啦!”
4. 使用Maven(IDEA)
-
创建项目
-
配置Maven信息
IDEA有自带的Maven,会随着IDEA的升级而升级,可能会出现各种意料之外的问题。所以我们需要配置本地安装的Maven。上图箭头①就是本地Maven安装目录,②是Maven下的配置文件③是安装Maven创建的仓库。
-
创建Java工程模块
-
创建web工程模块
web工程需要在pom.xml中配置打包方式为war
<packaging>war</packaging>
-
Web 设定
虽然创建了Web工程模块,但是IDEA并不知道这是web模块,所以需要进行Web设定
下面两个截图分别对应上面截图的两个路径。
借助IDEA生成web.xml
设置 Web 资源的根目录
设置完成后如下图:
-
执行Maven命令