JavaWeb的Maven
JavaWeb的Maven
使用Maven原因:
1、Javaweb开发中,需要使用大量的jar包,要手动导入
2、Maven就解决了上述手动导入和配置大量jar包的麻烦
Maven是项目架构管理工具,方便我们导入jar包。
Maven的核心:约定大于配置,有约束不能违反。Maven会规定我们如何编写Java代码,我们需要按这个规范来。
1、 Maven安装
https://maven.apache.org/download.cgi
下载后,解压到了E:\Maven\apache-maven-3.6.3(注意,我之前放在了C盘,出了问题):
配置环境(仅在系统变量中创建):
1、M2_HOME中E:\Maven\apache-maven-3.6.3\bin:
2、MAVEN_HOME中E:\Maven\apache-maven-3.6.3:
3、Path中%MAVEN_HOME%\bin:
在命令行窗口输入mvn -version,出现如下截图,则成功:
2、 配置阿里云镜像
镜像:mirrors
作用:加速下载
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
3、 本地仓库
1、在E:\Maven\apache-maven-3.6.3中,新建文件夹:maven-repo
4、 基于Maven建立javaweb项目
5、 自己创建的本地仓库的变化
E:\Maven\apache-maven-3.6.3中的maven-repo文件夹是自己创建的本地仓库,经过IDEA的自动导入,得到下面这些文件:
6、 把项目进一步完整:
6.1 在main下新建两个文件夹(java和resource)
6.2 给上面两个文件夹换颜色(标注)
7、 配置Tomcat
修改src->main->webapp->WEB_INF->web.xml中的文件
替换的原因是,IDEA自动生成的.xml文件中的版本太老了,想换成Tomcat的ROOT文件中的新的。
改为下面代码:
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 6 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 7 version="4.0" 8 metadata-complete="true"> 9 10 </web-app>
8、 pom.xml文件:
这个是Maven的核心配置文件,包含:
1、Maven的版本和头文件
2、配置的GAV信息
3、项目的打包方式(一共两种打包方式:jar包:java应用;war包:Javaweb应用)
4、配置:
4.1 项目的默认构建编码
4.2 编译版本(从1.7改为1.8)
4.3 项目依赖的jar包配置文件
4.4 项目构建用的东西
9、 真的建Maven项目:
由于采用Maven模板建项目,会生成很多用不着的dependencies等文件,所以通常不采用模板建Maven项目,而是建立一个干净的Maven项目,进而手动添加。
手动添加dependencies
1 <dependencies> 2 <dependency> 3 <groupId>junit</groupId> 4 <artifactId>junit</artifactId> 5 <version>4.11</version> 6 <scope>test</scope> 7 </dependency> 8 </dependencies>
10、 Maven的作用
比如导入Maven仓库(https://www.baidu.com/link?url=tlJ6-68DrpY1JZbYwau7XiNkPDqoK_DMzO4EQUU_LHxklLLXb_hIQBNncjJ-o6Xt&wd=&eqid=f42b8623003cc507000000035e7793d5)中的spring包:
11、 可能需要注意的问题:
问题1:
由于Maven的约定大于配置,所以我们之后可能会出现自己写的配置文件,无法被导出或者生效的问题,解决方案如下(https://www.cnblogs.com/pixy/p/4798089.html):
1 <build> 2 ....... 3 <resources> 4 <resource> 5 <directory>src/main/resources</directory> 6 <excludes> 7 <exclude>**/*.properties</exclude> 8 <exclude>**/*.xml</exclude> 9 </excludes> 10 <filtering>false</filtering> 11 </resource> 12 <resource> 13 <directory>src/main/java</directory> 14 <includes> 15 <include>**/*.properties</include> 16 <include>**/*.xml</include> 17 </includes> 18 <filtering>false</filtering> 19 </resource> 20 </resources> 21 ...... 22 </build>
把上述复制的代码,放在pom.xml文件中,如下:
问题2: