如何配置maven项目(胎教级)
前段时间刚整理了前后端交互的知识点,然后电脑卡住重启了,就无了,直接人傻了,今天整理一下如何配置maven项目,以便日后忘了或者重装系统时直接看。
前提,你需要到maven官网先下载maven,同时电脑已经配置有jdk
第一步:配置环境变量
一、配置 MAVEN_HOME ,变量值就是你的maven安装 的路径(bin目录之前一级目录)
二、在Path中添加:%MAVEN_HOME%\bin
三、检验是否配置成功
win+R cmd回车进入控制台,输入mvn –v命令(注意-前面有个空格),如下即代表成功
第二步:配置Maven本地仓库
一:创建本地仓库目录
在某盘中新建一个文件夹,用作本地仓库,命名建议localRepository
二:配置本地仓库
在maven的安装目录下找到conf下面的settings.xml:
打开settings.xml文件,配置如下:
1、先配置本地仓库位置
2、再配置国内仓库镜像
代码在这:
<!-- 阿里云镜像1 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
第三步:打开开发工具,我用的IDEA所以就演示IDEA了
一:打开Settings配置maven
(别告诉你连setting在那都不知道,欢迎界面的话在右下角,文件打开界面在左上角的File里面)
设置内容如下:
二:创建maven的web项目
1、点击Next填写项目信息:
2、然后一直下一步,最后点击Finish后开始创建工程,耐心等待
3、搭建项目结构如下:
创建完后记得将右键将相应的包改成特殊文件夹,最终效果要如上图
三:打开pom.xml,在dependencies中导入相应的依赖,这里以写servlet所需要的javax.servlet为例
需要用到哪些就在后面继续添加dependency标签,第一次导依赖时是没有提示的,如果不知道相应的依赖怎么写,可以去官网搜索,找到所需要的jar的各个版本,选择使用率较高的版本,点击版本号,然后有提示的maven坐标,将其复制当前项目的pom.xml中即可,网站在这里:http://search.maven.org/ http://mvnrepository.com/
四:配置依赖范围(设置范围关键字 )
记住以下依赖添加时必须有作用域即可
-
默认引入 的jar包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
-
servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和tomcat下jar冲突)
-
jdbc驱动jar包 ---- runtime (测试、运行 有效 )
-
junit ----- test (测试有效)
依赖范围由强到弱的顺序是:compile>provided>runtime>test
例如下面的junit:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
五:设置jdk编译版本
由于我用的jdk1.8,所以需要编译版本为1.8,这里需要使用maven的插件来设置:
在pom.xml中加入:
<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>
六:如果是web项目的话还需要配置本地服务器tomcat
按照需求更改如图标记的几处地方
点击deployment选择maven_ web:war exploded,
一般在开发阶段都是使用该方式 ,只将项目编译后发布到服务器,不生成war包,因为目前开发阶段不要war项目
七:错误处理
(一)jar包下载失败
如果点击右侧边上的maven时看到有如上的红色波浪线,首先判断问题:
判断问题:
第一步:检查网络(如果能打开www.leixiaoqiao.com,则网络没有问题)
第二步:检查项目环境配置
第三步:打开本地仓库,根据添加的坐标查找本地仓库中的jar是否存在,判断是否正常下载
如果如下图这样,包中没有jar文件,只有一个失败文件,则代表对应的的jar包没有导成功,则需要在本地仓库中,找到对应下载失败的文件,并删除他,然后在pom.xml中将依赖坐标重新添加一次(剪切后在粘贴,这样会重新触发自动下载)
(二)依赖冲突
查看是否存在依赖冲突:
观察生成依赖tree是否存在红色线引用(有红色线就是存在jar版本冲突)
多个jar同时依赖某个第三方的jar,但是多个jar依赖的第三方jar的版本不同,这时就会出现依赖冲突(就是版本冲突)
解决办法:在某些jar中忽略依赖其他低版本jar
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!--排除当前jar的依赖第三方jar-->
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
(三)在jsp页面使用EL表达式,数据不显示
创建模板文件:
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>Archetype Created Web Application</display-name>
</web-app>
(四)idea新建的web项目webapp配置问题
正常的web项目结构:
webapp的图标有蓝色圆点,如果创建项目没有蓝点,表示webapp没有被maven识别为web模块
解决办法:
打开模块配置
新增web模块
配置web模块指向项目目录和文件
修改后的配置:
点击确定后
(五)java目录下的非.java文件编译问题
maven默认只编译java目录中的所有源文件(.java),如果将xml文件放在java目录下,那么编译后xml文件是不存在的
解决办法:
<resources>
<!--打包指定目录中的xml文件(在java目录存放xml时需要配置)-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
L.X.Q.