Maven
我为什么要学习这个技术?
- 在]avaweb开发中,需要使用大量的jar包,我们手动去导入
- 如何能够让一个东西自动帮我导入和配置这个jar包。由此,Maven诞生了!
Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置
- 有约束,不要去违反。
Maven会规定好你该如何去编写我们的ava代码,必须要按照这个规范来;
下载安装Maven
下载完成后,解压即可;
配置环境变量
在我们的系统环境变量中
配置如下配置:
- M2_HOME maven目录下的bin目录
- MAVEN HOME maven的目录
- 在系统的path中配置 %MAVEN_HOME%/bin
小问题:到这里验证出现问题
是因为高版本的JDK如JDK17免安装版没有JRE,配置好环境变量Maven识别不出JDK的位置导致的报错。
找到maven的bin目录,右击mvn.cmd点击编辑
在首行加入jdk路径
set JAVA_HOME=D:\software\java\jdk1.8
阿里云镜像
- 镜像:mirrors
- 作用:加速我们的下载
- 国内建议使用阿里云的镜像
第一种
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
第二种
<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>
mirrorOf的好处:
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
如果不加 mirrorOf 这一行,默认所有的依赖都会去阿里云仓库下载,加上后jeecg的依赖包就可以从jeecg私服下载了。
//mirrorOf 可以如果是 *,!jeecg,!jeecg-snapshots 的话,作用是对于jeecg有关的jar包到jeecg仓库中下载,//否则如果是 central 的话,则所有依赖都是到阿里云仓库下载啰
//jeeccg 如果加载jar包失败,可能是jeecg官网进不去,那就直接将mirrorOf使用central,全部使用阿里云的仓库下载
本地仓库
在本地的仓库,远程仓库;
建立一个本地仓库:localRepository
在IDEA中使用Maven
-
启动IDEA
-
创建一个Maven
-
创建mavenWeb项目
-
观察maven仓库多了很多东西
-
IDEA中Maven设置
) -
到此,Maven在IDEA中的配置和使用就OK了!
在IDEA中配置tomcat
为什么会有这个问题:我们访问一个网站,需要指定一个文件夹名字;
pom文件
Maven的高级之处在于,他会帮忙导入这个JAR包所依频的其他jar
<!--Maven版本和头文件-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 这里就是我们刚才配置的GAV-->
<groupId>org.example</groupId>
<artifactId>JavaEE</artifactId>
<!-- Package:项目的打包方式
jar:java应用
war:JavaWeb应用-->
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>JavaEE Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 配置-->
<properties/>
<!-- 项目依赖-->
<dependencies>
<!-- 具体依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 项目构建的东西-->
<build>
<finalName>JavaEE</finalName>
<!-- 在build中配置resources,来防止我们资源导出失败的问题-->
<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>
</project>
maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题
解决方案:
<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>
相关问题
-
IDEA中每次都要重复配置Maven
在项目外面打开全局配置
-
maven默认web项目中的web.xml版本问题
IDEA中和tomcat中版本尽量一致
-
IDEA中没有新建servlet选项
-
法一,手动添加这两个jar包,然后点击apply
-
法二,用maven导入jar包
代码
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency>
-