Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
首先提出一个疑问:为什么要学这个工具?
- 在Javaweb开发中,我们往往需要手动导入大量的jar包,这个过程是繁琐的
- 如何让一个东西自动帮我们导入和配置jar包呢?于是Maven工具诞生了
Maven项目架构工具
目前来说,我们学习这项工具就是用来方面导入jar包的,并且在学习之前,我们需要记住一句话:
Maven的核心思想:约定大于配置(具有约束,但不要去违反)简单来说就是,Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来~
下载安装Maven
下载地址:https://maven.apache.org/download.cgi
配置环境变量
在我们的系统环境变量中,如下配置:
-
M2_HOME(Maven目录下的bin目录)
-
MAVEN_HOME(Maven的目录)
-
在系统的path中配置MAVEN_HOME(%MAVEN_HOME%\bin)
完成上述步骤之后,我们打开控制台输入mvn -version命令行,如果可以成功返回Maven的版本号,这说明已配置成功~
阿里云镜像
- 镜像:mirrors
- 作用:加速我们的下载
- 国内建议使用阿里云镜像
修改maven根目录下的conf文件夹中的setting.xml文件,添加内容如下:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
本地仓库
建立一个本地仓库:localRepository
在Maven的根目录下新建一个文件夹,命名为maven-repo,并且在setting.xml文件内,添加内容如下:
<localRepository>D:\Users\12709\Documents\Tools\apache-maven-3.8.2\maven-repo</localRepository>
并且在标签内添加maven-repo的绝对路径~
在IDEA中使用Maven
1、启动IDEA
2、创建一个Maven项目
在这里需要提一下,功能强大的IDEA是自带了Maven的,不过可配置的选项较少,并且为了可以操控自己的本地仓库,所以可以选择自己路径下的Maven
3、如果IDEA的版本比较新,那么创建完成之后,IDEA会自动下载jar包,如果版本比较旧,也可以点击右下角的命令请求(Enable Auto-Imported),然后等待项目初始化完毕!直到IDEA的控制台返回创建成功的提示~
4、观察Maven根目录下的maven-repo文件夹,可以发现原本空空如也的文件夹多了非常多文件如此一来,本地仓库也搭建成功
5、IDEA中的Maven配置
需要注意的是,IDEA中配置Maven会经常出现一个问题:就是项目自动创建完毕之后,它的Maven home有可能会使用IDEA默认的Maven,如果我们发现了这个问题,就可以在Maven配置中手动改成本地的。
到这里,Maven在IDEA中的配置和使用就已经完成了~
不过呢,这样创建的Maven项目并不能算是最好的,因为我们是使用Maven的模版去生成的~
创建一个普通的Maven项目
创建一个普通的Maven项目其实非常简单,我们只需要在上述步骤中,不选择模版创建,直接点击Next就可以~
按照上述步骤进行操作,可以发现它并没有让我们执行去选择仓库路径等操作,这样一来,一个干净的Maven项目就顺利创建成功!
而我们第一次创建的Maven项目,则会有一些在Web应用下才会有的文件:
所以为了“还原”这“干净的”Maven项目,我们需要手动创建一些文件夹~
但是,当我们创建java文件夹之后,发现这个java文件夹并没有标蓝,也不可以在文件夹内创建class文件,于是我们需要使用标记文件夹功能~
同理,我们也可以将resources目录标记成资源目录~
在IDEA中配置Tomcat
在IDEA界面的左上角,可以发现一个类似于绿色榔头一样的图案,我们只要点击这个图案旁边的方框,便可以进入配置界面,再点击配置界面左上角的“+”符号,便可添加配置,选择Tomcat Server:
如何解决警告问题:直接点击右下角的Fix即可~
至于为什么会出现这样的一个问题,简单来说,我们在访问一个网站的时候,需要指定一个文件夹的名字,这是必须要的配置~
在上述的界面中,Application context栏目可写可不写,如果不写,那默认的就会访问localhost:8080,假设我们写了/ayin,就会访问localhost:8080/ayin,这个过程我们称之为虚拟路径映射!
如果弹窗报错为“SSL HTTP Connector node not found: set up one in the server.xml”这串字符,可以通过在Tomcat配置界面中将HTTPs一栏设置为空。
点击运行之后,等待一小会,成功运行会弹出“HelloWorld!”网页,而这个网页访问的是webapp文件夹下默认的index.jsp文件的内容!
pom.xml
POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。作用类似ant的build.xml文件,功能更强大。
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。
<!-- Maven的高级之处在于,他会自动帮你导入这个jar包所依赖的其他jar-->
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
</dependencies>
扩展一下:Maven由于它的大于配置,我们之后可能会遇到写的配置文件,无法被导出或生效的问题,解决方案如下:
<!-- 在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
我们可以在IDEA右侧展开栏中,点击蓝色闪电图标右边第一个图标,这样我们就可以得到关于jar包的关系树~