1.Maven
为什么要学习这个技术?
-
在Javaweb开发中,需要使用大量的jar包,我们手动去导入; -
如何能够让一个东西自动帮我导入和配置这个jar包。 由此,Maven诞生了!
5.1 Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置
Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;
5.2 下载安装Maven
官网:Maven官网

下载完成后,解压即可;
5.3 配置环境变量
在我们的系统环境变量中
配置如下配置:
- M2_HOME maven目录下的bin目录
- MAVEN_HOME maven的目录
- 在系统的path中配置
%MAVEN_HOME%\bin - 之后在命令行窗口中输入
mvn -version - 测试Maven是否安装成功,保证必须配置完毕!
5.4 阿里云镜像
- 国内建议使用阿里云的镜像(可以百度搜
maven 阿里云镜像 ,也可以打开下方链接) - https://maven.aliyun.com/mvn/guide

- 在
settings.xml 里面的mirrors 标签里面导入
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
5.5 本地仓库
在Maven -bin 的同级目录下建立一个文件夹 maven-repo

**建立一个本地仓库:**localRepository
- 在
settings.xml 里面的localRepository下导入
<localRepository>D:\Develop\apache-maven-3.6.1\maven-repo</localRepository>
5.6 创建一个MavenWeb项目
-
启动IDEA -
创建一个MavenWeb 项目


- 创建完成等待项目初始化完成


- 观察maven仓库中多了什么东西?
- 注意:IDEA项目创建成功后,看一眼Maven的配置

到这里,Maven在IDEA中的配置和使用就OK了!
5.8标记文件夹功能
我们在创建的MavenWeb 项目的 main 目录下创建 java,resources

- 鼠标悬停在java文件夹,右键

- resources 也同样标记

5.7 创建一个普通的Maven项目


5.8 IDEA配置Tomcat
IDEA配置Tomcat
5.9 pom文件
pom.xml 是Maven的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<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.kuang</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<finalName>javaweb-01-maven</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
5.10 解决遇到的问题
每次创建Maven项目都要配置

进行maven全局配置

maven默认web项目中的web.xml版本问题
解决办法:替换为webapp4.0版本和tomcat一致
- tomcat - webapps - root - WEB-INF- web.xml
<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"
metadata-complete="true">
</web-app>
约定大于配置
maven由于它的约定大于配置,我们之后可能遇到我们写的配置文件,无法被导出或者生效的问题
什么意思?
-
在java目录下新建properties -
在resources目录下新建properties -
启动tomcat -
我们发现java和resources都被打包到了同一个路径下:classes,我们俗称这个路径为classpath -
java目录下的properties并没有被打包,resources目录下的properties被打包了,这就是我们说的我们写的配置文件,无法被导出或者生效

解决方案:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
|