用IDEA将普通Web项目转Maven项目

Posted 青衫客36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用IDEA将普通Web项目转Maven项目相关的知识,希望对你有一定的参考价值。

原文链接:https://blog.csdn.net/Fickle_actor/article/details/82564231

1.准备工作
Maven 环境搭建
开发工具: IDEA(对Maven的支持更好)
一个可以用IDEA 跑起来的普通web项目(本案例用的是一个基于SSM框架的项目)

2.转成Maven的目录结构
右键点击项目,选中Add framework support…,选择Maven并点击ok

 

 

这个操作会将你的项目改变为Maven的项目结构,并生成pom文件

3.转移配置文件和前端页面文件
将配置文件都移到src/main/resources文件夹下
在src/main/目录下创建webapp文件夹,将webContent目录下的文件都移到webapp目录下,并删除webContent文件夹
操作后的项目结构如下:

 

 

4.删除jar包,声明jar包依赖
将webapp/WEB-INF/目录下的lib文件夹备份然后删除,然后编写pom文件,声明项目的坐标信息和jar包的依赖等。
声明jar包依赖在这里有两种做法,
一种是根据lib文件夹中的jar包,一个一个的添加依赖。这种比较费时,而且有些包可能都没有用到。

我选择了第二种方法, 在网上找到你项目所用框架所必须的Maven依赖配置,copy到pom文件夹中,然后再看代码哪里报错,给缺失的jar包添加Maven依赖。

我整理了SSM项目需要的Maven依赖记录在了下面链接的博客中:
https://blog.csdn.net/fickle_actor/article/details/82560013

在IDEA中对于缺失的jar包可以用快捷键(alt +Enter)添加Maven 依赖

 

 

如果代码没有报错且项目能够运行成功,用maven命令编译没有问题,那么Maven项目就转换成功了。

下面说一下我在这个过程中碰到的两个问题:
1.项目打包时不会java目录下的xml文件不会被打包
这个问题的原因是Maven打包时,默认java项目下只将.java文件打包。解决方法参考下面链接的博客

https://blog.csdn.net/Fickle_actor/article/details/82712663

2.配置文件找不到,web.xml中配置文件路径报错,解决方法参考下面链接的博客

https://blog.csdn.net/Fickle_actor/article/details/82712810

3.Maven默认的jdk是1.5版本的,需要在pom文件中指定你原本项目使用的jdk版本,否者很多代码会报错,由于1.5的jdk不支持高版本的一些代码的写法和用法。
在pom文件添加以下代码指定jdk版本

 <!--规定jdk版本和字符编码-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

4、web.xml中Log4jConfigListener提示过时了,解决方法参考下面链接的博客

https://blog.csdn.net/Fickle_actor/article/details/8272084

以上是关于用IDEA将普通Web项目转Maven项目的主要内容,如果未能解决你的问题,请参考以下文章

(转)使用IDEA将普通MAVEN项目转为WEB项目

idea创建普通java项目以及maven创建项目过程(转)

myeclipse 项目,怎么转成maven项目

maven项目转成web项目变成多个子项目

idea 转普通项目为maven 项目

Idea创建maven项目(普通java和web项目)