IDEA利用Maven建立基本JavaEE项目

文章目录

    • 1. Maven下载及配置
      • 1.1 Maven下载
      • 1.2 Maven修改仓库
      • 1.3 Maven环境配置
    • 2. IDEA配置Maven
    • 3. 利用Maven骨架创建简单Servlet跳转
      • 3.1 新建JavaWeb项目
      • 3.2 相关依赖配置
      • 3.3 创建基本Servlet
      • 3.4 pom.xml中的配置
      • 3.5 import相关包
    • 4 运行项目及scope作用域
      • 4.1 运行基本项目
      • 4.2 依赖冲突及scope作用域
      • 4.3 运行最后程序

1. Maven下载及配置

1.1 Maven下载

首先去到Maven官网进行下载,点击DownLoad进入下载界面
IDEA利用Maven建立基本JavaEE项目_第1张图片
选择红线里面的那个下载就可以了,下载之后解压就好了。
IDEA利用Maven建立基本JavaEE项目_第2张图片

1.2 Maven修改仓库

打开解压后的文件中的conf文件夹的setting.xml文件,首先在大约53行的位置有一行用红色圈出来的代码,这个是默认的本地仓库,我们对其路径进行修改,首先将他剪切出来,在下面粘贴,将其修改成解压路径下的repo文件夹。
IDEA利用Maven建立基本JavaEE项目_第3张图片
之后修改镜像信息,因为在使用Maven的时候如果需要的依赖不在本地仓库的话,会需要在联网的条件下从中央仓库下载,但是那样的话下载速度会比较慢,所以我们将其修改成从阿里云镜像仓库下载。红笔是xml原来的配置,我们在下面加上绿色的那段代码就可以了。
代码如下:

	<mirror>   
	  <id>alimaven</id>   
	  <name>aliyun maven</name>   
	  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>   
	  <mirrorOf>central</mirrorOf>           
	</mirror> 		

IDEA利用Maven建立基本JavaEE项目_第4张图片
修改结束之后,保存退出,在刚才设定仓库路径下建立repo包,并将setting.xml文件复制到repo文件夹下。
IDEA利用Maven建立基本JavaEE项目_第5张图片

1.3 Maven环境配置

新添一个MAVEN_HOME环境变量,填入解压路径
IDEA利用Maven建立基本JavaEE项目_第6张图片
之后在Path路径里面添加MAVEN_HOME变量,这里最好放到jdk变量下面(紧贴)
在这里插入图片描述
添加好之后,打开cmd或者直接在地址栏输入cmd进入,输入mvn -version就可以看到版本号及相关信息,这表示Maven已经成功配置
IDEA利用Maven建立基本JavaEE项目_第7张图片
如果你的环境变量MAVEN_HOME不是紧贴在jdk变量放置的话,有可能会出现只能从地址栏访问而不能直接在cmd下查询的情况;另外,还有可能在cmd查询的时候出现mvn不是内部命令的情况,这个时候可以试一下以管理员身份打开cmd,应该就可以查询到了。

2. IDEA配置Maven

打开IDEA,在Configure选择Settings选项,输入maven打开配置界面,将Maven home directory里路径修改成解压路径,之后点击下面两个Override的勾选,自行配置,第一个修改成setting.xml的路径,第二个修改成新建的repo文件夹路径。然后点击OK完成设置。
IDEA利用Maven建立基本JavaEE项目_第8张图片
在这里插入图片描述

3. 利用Maven骨架创建简单Servlet跳转

3.1 新建JavaWeb项目

创建Maven项目,勾选Create From archetype,下面全部都是Maven提供的骨架,我们找到红线画出的这个maven-archetype-webapp,这里一定要注意,上面还有一个cocoon-22-archetype-webapp,千万不要选错。如果对每个模板都想大致了解一下的话,可以看下这篇文章Maven 三种archetype说明。
IDEA利用Maven建立基本JavaEE项目_第9张图片
点击Next进入,选择文件放置地址,起一个项目名,Next。
IDEA利用Maven建立基本JavaEE项目_第10张图片
选择Maven相关配置,点击finish完成配置,打开项目。
IDEA利用Maven建立基本JavaEE项目_第11张图片

3.2 相关依赖配置

从这步开始,你要确保你的电脑一定要是联网的状态。因为如果是第一次创建Maven项目,会从中央仓库下载大量的文件到你的本地仓库(你所创建的repo包),该过程很慢,我当时也下载了二十分钟左右,所以不要着急。如果你不是第一次打开的话,点击右下角的Enable Auto-Import直接完成配置。
IDEA利用Maven建立基本JavaEE项目_第12张图片
完成之后,可以看下项目基本的目录结构。与之前直接创建的JavaWeb项目不同的是,这里没有lib文件夹,而是多了一个pom.xml,在这里我们也能看出Maven的强大之处,利用位置定位的方式解决jar包引用带来的项目过大的问题,以及对jar包冲突问题的完美解决。
IDEA利用Maven建立基本JavaEE项目_第13张图片
首先,在main下创建两个Directory,分别是java和resources,在这里要注意一件事情,因为我并不是第一次部署,所以能够直接选择这两种Directory,可以在下下图中看到,这两个文件夹的颜色是不一样的,因为java是用来放置源代码的,而resources是用来放置项目的资源,比如说 property文件。 IDEA利用Maven建立基本JavaEE项目_第14张图片
IDEA利用Maven建立基本JavaEE项目_第15张图片
所以如果是第一次的话,需要将java修改成Sources Root,将resources修改成Resources Root。
IDEA利用Maven建立基本JavaEE项目_第16张图片

3.3 创建基本Servlet

先新建一个Servlet,我这里为了省事,没有创建package。
IDEA利用Maven建立基本JavaEE项目_第17张图片
在这里可能会出现没有新建Servlet这个选项,点击File->Project Structure->Facets,将最下面的Sources Root那两个选项全部勾选就可以了。
IDEA利用Maven建立基本JavaEE项目_第18张图片
新建完Servlet之后,现将web.xml中servlet-mapping配置完全。
IDEA利用Maven建立基本JavaEE项目_第19张图片
然后在Servlet里面写一个最基本的页面跳转。这些红字暂时不用管,因为没有部署依赖,所以肯定会报错。
IDEA利用Maven建立基本JavaEE项目_第20张图片
然后写一个跳转的hello.jsp,内容就随便写点什么就好
IDEA利用Maven建立基本JavaEE项目_第21张图片

3.4 pom.xml中的配置

首先先了解一下pom.xml中的结构,想详细的了解去看pom.xml的详解,这里就提两个现在用得上的,首先是依赖关系列表dependencies,这里用启动Maven项目时自带的Junit依赖进行说明

<dependencies>						//在里面配置所有依赖
    <dependency>					//一个基本依赖关系
      <groupId>junit</groupId>		//团体、组织的标识符。一般对应着 java 的包结构。
      <artifactId>junit</artifactId>//单独项目的唯一标识符
      <version>4.11</version>		//版本号
      <scope>test</scope>			//scope周期 测试用test
    </dependency>
 </dependencies>

pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,Maven不会加载该插件,pluginManagement声明可以被继承。pluginManagement一般是用来在父POM中定义,提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。

<pluginManagement>					//统一管理插件
	<plugins>						//在里面配置所有插件	
		  <plugin>					//一个插件
				<artifactId>maven-war-plugin</artifactId>
		        <version>3.2.2</version>
	      </plugin>
	</plugins>
</pluginManagement>

之前提到了Servlet里出现红字,就是因为没有引入依赖,所以javax.servlet.http.HttpServletRequest需要导入两个包:javax.servlet和javax.servlet.http。在groupId中输入信息,然后IDEA会智能补齐。
IDEA利用Maven建立基本JavaEE项目_第22张图片
IDEA利用Maven建立基本JavaEE项目_第23张图片
配置完依赖之后,使用maven的tomcat插件,这种方式不需要本地安装的tomcat,使用插件内置的tomcat在本地启动项目。
IDEA利用Maven建立基本JavaEE项目_第24张图片

3.5 import相关包

回到Servlet,有可能IDEA已经将包引入了,如果没有的话,将鼠标放到红字上面,按下Alt+Enter导入包。
IDEA利用Maven建立基本JavaEE项目_第25张图片

4 运行项目及scope作用域

4.1 运行基本项目

找到这个小写的m,点击打开
IDEA利用Maven建立基本JavaEE项目_第26张图片
输入tomcat7:run,运行项目。
在这里插入图片描述
将生成的访问路径拿下来,放到地址栏去访问
IDEA利用Maven建立基本JavaEE项目_第27张图片

4.2 依赖冲突及scope作用域

访问结果如下,可以清楚地看到这里报错了,分析一下错误javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name “javax/servlet/http/HttpServletRequest”,简单地来说就是在加载的时候,HttpServletRequest出现了不同的版本,这个就和scpoe作用域有关。
IDEA利用Maven建立基本JavaEE项目_第28张图片
打开一个安装好的tomcat中的lib文件夹,我们可以看到servlet-api.jar,jsp-api.jar两个jar包,这说明在引入tomcat的插件的时候,已经有了这两个jar包,而在pom.xml中我们引入了这两个依赖关系,所以自然会引起冲突。解决方法就是利用scope作用域。
IDEA利用Maven建立基本JavaEE项目_第29张图片
scope作用域
1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
所以在这里加上provided依赖。
IDEA利用Maven建立基本JavaEE项目_第30张图片

4.3 运行最后程序

默认路径是index.jsp的欢迎界面
IDEA利用Maven建立基本JavaEE项目_第31张图片
输入MyServlet进行跳转,成功跳转到hello.jsp,显示hello,maven。至此,一个简单的Servlet跳转demo成功运行。
IDEA利用Maven建立基本JavaEE项目_第32张图片

Ysc第四篇文章
2020.02.03

你可能感兴趣的:(maven,java)