如何配置maven项目(胎教级)

前段时间刚整理了前后端交互的知识点,然后电脑卡住重启了,就无了,直接人傻了,今天整理一下如何配置maven项目,以便日后忘了或者重装系统时直接看。

前提,你需要到maven官网先下载maven,同时电脑已经配置有jdk

第一步:配置环境变量

一、配置 MAVEN_HOME ,变量值就是你的maven安装 的路径(bin目录之前一级目录)

image.png

二、在Path中添加:%MAVEN_HOME%\bin

image.png

三、检验是否配置成功

win+R cmd回车进入控制台,输入mvn –v命令(注意-前面有个空格),如下即代表成功

image.png

第二步:配置Maven本地仓库

一:创建本地仓库目录

在某盘中新建一个文件夹,用作本地仓库,命名建议localRepository

image.png

二:配置本地仓库

在maven的安装目录下找到conf下面的settings.xml:

image.png

打开settings.xml文件,配置如下:

1、先配置本地仓库位置

image.png

2、再配置国内仓库镜像

image.png

代码在这:

<!-- 阿里云镜像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里面)

image.png

设置内容如下:
image.png

二:创建maven的web项目

image.png

1、点击Next填写项目信息:

image.png

2、然后一直下一步,最后点击Finish后开始创建工程,耐心等待

image.png
image.png
3、搭建项目结构如下:

image.png

创建完后记得将右键将相应的包改成特殊文件夹,最终效果要如上图

image.png

三:打开pom.xml,在dependencies中导入相应的依赖,这里以写servlet所需要的javax.servlet为例

需要用到哪些就在后面继续添加dependency标签,第一次导依赖时是没有提示的,如果不知道相应的依赖怎么写,可以去官网搜索,找到所需要的jar的各个版本,选择使用率较高的版本,点击版本号,然后有提示的maven坐标,将其复制当前项目的pom.xml中即可,网站在这里:http://search.maven.org/ http://mvnrepository.com/

image.png

四:配置依赖范围(设置范围关键字

记住以下依赖添加时必须有作用域即可
  • 默认引入 的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的插件来设置:

image.png

在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

按照需求更改如图标记的几处地方

image.png

点击deployment选择maven_ web:war exploded,

一般在开发阶段都是使用该方式 ,只将项目编译后发布到服务器,不生成war包,因为目前开发阶段不要war项目

image.png

七:错误处理

(一)jar包下载失败

image.png

如果点击右侧边上的maven时看到有如上的红色波浪线,首先判断问题:

判断问题:

​ 第一步:检查网络(如果能打开www.leixiaoqiao.com,则网络没有问题)

​ 第二步:检查项目环境配置

​ 第三步:打开本地仓库,根据添加的坐标查找本地仓库中的jar是否存在,判断是否正常下载

如果如下图这样,包中没有jar文件,只有一个失败文件,则代表对应的的jar包没有导成功,则需要在本地仓库中,找到对应下载失败的文件,并删除他,然后在pom.xml中将依赖坐标重新添加一次(剪切后在粘贴,这样会重新触发自动下载)

image.png

(二)依赖冲突

查看是否存在依赖冲突:

image.png

观察生成依赖tree是否存在红色线引用(有红色线就是存在jar版本冲突)

image.png

多个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表达式,数据不显示

创建模板文件:

image.png

代码如下:

<?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项目结构:
image.png

webapp的图标有蓝色圆点,如果创建项目没有蓝点,表示webapp没有被maven识别为web模块

image.png

解决办法:

打开模块配置

image.png
新增web模块

image.png

配置web模块指向项目目录和文件

image.png
修改后的配置:
image.png

点击确定后

image.png

(五)java目录下的非.java文件编译问题

maven默认只编译java目录中的所有源文件(.java),如果将xml文件放在java目录下,那么编译后xml文件是不存在的

解决办法:

image.png

		<resources>
            <!--打包指定目录中的xml文件(在java目录存放xml时需要配置)-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>

L.X.Q.


温柔赠于四方,自由灵魂独享