Maven的总结
- Maven
- 安装注意点:
- Maven操作命令
- Maven概念模型视图
- Maven使用相关
- 配置jdk8和tomcat
- 配置dependency
- 配置pom
Maven
安装注意点:
- 环境配置的时候需要预先配置好jdk
- 记得配置.\apache-maven-3.6.3\conf\settings.xml中的本地仓库D:\my_java\maven_repository
必要时候也可以更换阿里云镜像地址,加快下载速度 - idea和eclipse使用的时候记得先进行其配置
Maven操作命令
- compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target目录下。
- test 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。
- clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。
- package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war包。
- install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。
Maven概念模型视图
Maven使用相关
配置jdk8和tomcat
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
配置dependency
易出错点:如果这两个依赖不加scope的provided限制,会导致,导入servlet-api包和tomcat自身拥有的servlet-api包,重复导包,发生冲突,发出servlet is is not a javax.servlet.Servlet的异常错误
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
涉及知识点:scope的运用
scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署。
scope 的作用范围:
(1)compile:默认值,适用于所有阶段(表明该 jar 包在编译、运行以及测试中路径均可见),并且会随着项目一起发布。
(2)test:只在测试时使用,用于编译和运行测试代码,不会随项目发布。
(3)runtime:无需参与项目的编译,不过后期的测试和运行周期需要其参与,与 compile 相比,跳过了编译。如 JDBC 驱动,适用运行和测试阶段。
(4)provided:编译和测试时有效,但是该依赖在运行时由服务器提供,并且打包时也不会被包含进去。如 servlet-api。
(5)system:类似 provided,需要显式提供包含依赖的jar,不会从 maven 仓库下载,而是从本地文件系统获取,需要添加 systemPath 的属性来定义路径。
配置pom
pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下:
:文件的根节点 .
: pom.xml 使用的对象模型版本
:项目名称,一般写项目的域名
:模块名称,子项目名或模块名称
:产品的版本号 .
:打包类型,一般有 jar、war、pom 等
:项目的显示名,常用于 Maven 生成的文档。
:项目描述,常用于 Maven 生成的文档
:项目依赖构件配置,配置项目依赖构件的坐标
:项目构建配置,配置编译、运行插件等。