相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得不学一学如何用Maven做包管理。

在网上看了很多的文章,发现都不是很全面,因此就把自己摸索的过程记录下来,希望对大家有帮助。本文主要记录如何从无包管理的项目开发模式转到使用Maven进行项目包管理。

做编程的,对于新的知识,先运行起来再说,而不是去深究其原理。我们这里用Maven搭建一个简单的Web项目,让其可以运行起来。这可以让我们对Maven有一个感性的认识。

在开始之前你需要以下东西(任意版本都可以):

  • IntelliJ IDEA 12.1.4
  • JDK 1.6.0_51
  • Maven 3.0.4
  • Tomcat 6

1、创建Maven项目

如果是第一次打开软件直接点击 Create New Project ,如果之前已经打开过项目了,需要点击菜单中 File → New Project … 如下图:

点击Next,输入 GroupId、ArtifactId:

点击Next输入项目名,如下:

点击 Finish完成。

2、创建项目Source目录并设置为Source Folder(4个)

Maven规定,必须创建以下几个Source Folder:

  • src/main/resources
  • src/main/java
  • src/test/resources
  • src/test/java

有些IDE在你创建完工程(Project)之后会自动帮你创建上面的文件夹,如果没有创建,那我们就需要手动创建了。

创建完之后需要设置其为项目的Source Folder(源文件夹),点击项目右键选择“Open Module Setting”打开如下视图:

完成后文件夹结构以及状态如下图所示:

3、修改输出目录(4个)

在项目名称上右键,打开“Open Module Setting”视图:

  • Output path定义了源文件的代码文件和资源文件的输出目录。
  • Test output path 定义了测试源文件的代码文件和测试资源文件的输出目录。

4个源文件夹对应的输出目录分别对应:

  • src/main/resources  对应  chanshuyi_demo(项目名)/target/classes
  • src/main/java  对应  chanshuyi_demo(项目名)/target/classes
  • src/test/resources  对应  chanshuyi_demo(项目名)/target/test-classes
  • src/test/java  对应  chanshuyi_demo(项目名)/target/test-classes

一般情况下这个都是默认设定好了的,我们无需手动设置。如果没有设置就需要手动设置一下。

4、设定类库(依赖)

还是在项目名称上右键,打开“Open Module Setting”视图,定位到Dependencies选项:

如果看到上面的依赖有错误,那就重新导入依赖。一般情况下默认的设置都是正确的。

5、增加Web项目的Facets

其实这一步是将src/main/webapp目录设定为Web项目的内容目录,也是类似于设定源文件夹的意思。

打开"Open Module Setting“菜单,点击”Facets“菜单,点击+号。

在弹出的窗口选择chanshuyi_demo模块,修改下图中箭头所指的3个位置为正确的路径:

6、创建Artifacts

创建Artifacts其实就是把项目打包部署起来,以供后面Tomcat调用。在"Open Module Setting“中选择”Artifacts“菜单,如下图所示:

在弹出的窗口中选择chanshuyi_demo,在之后弹出的菜单中无需修改,直接保存。

7、部署项目到Tomat中

点击”Run“ -> ”Edit Configurations“打开配置,按下图所示创建一个本地的Tomcat服务器:

之后在Server标签中配置下Tomcat所在目录,Tomcat的端口等属性,如下图:

之后点击Deployment标签,增加要部署的Arfifacts,并选择chanshuyi_demo:

到这里一个项目的创建和部署就已经完成了。

接下来启动Tomcat,测试一下是否真的部署成功了。点击启动项目,

启动完之后会自动打开首页,如果看到如下画面那就是部署成功了。

但因为每个人的情况不一样,你可能会遇到其他的错误。如果你遇到:Errot Listenstart错误的话,那么就是web.xml文件的配置出了错,你可以将以下代码替换到web.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>

这样就应该可以成功了。如果不行,那再根据提示进行修改。

好了,最后复习一下步骤:

1、创建Maven项目

2、创建项目Source目录并设置为Source Folder(4个)

3、修改输出目录(4个)

4、设定类库(依赖)

5、增加Web项目的Facets

6、创建Artifacts

7、部署项目到Tomat中

如何在IntelJ下用Maven创建一个Web项目的更多相关文章

  1. 在eclipse中,用maven创建一个web项目工程

    1.在eclipse中用maven创建项目,右键new>>Maven Project 2.点击next继续 3.点击next继续,选择maven-archetype-webapp, 4.点 ...

  2. [转]在eclipse中,用maven创建一个web项目工程

    1.在eclipse中用maven创建项目,右键new>>Maven Project 2.点击next继续 3.点击next继续,选择maven-archetype-webapp, 4.点 ...

  3. maven安装配置及使用maven创建一个web项目

    今天开始学习使用maven,现在把学习过程中的资料整理在这边. 第一部分.maven安装和配置. http://jingyan.baidu.com/article/295430f136e8e00c7e ...

  4. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  5. 用maven创建一个web项目

    下面所使用的Eclipse开发工具为Eclipse Java EE IDE 版本. 1.创建一个maven项目,如图所示: 选择“maven-archetype-webapp”,如图所示: 后面几步按 ...

  6. Maven创建一个Web项目

    我们可以通过命令行或者直接使用Eclipse创建一个maven webapp项目:通过命令行创建在命令行中输入如下格式的命令将会创建一个新的maven webapp项目:mvn archetype:g ...

  7. Idea使用Maven创建Java Web项目

    最近学到了Java Web项目,使用Idea和Maven创建Java Web的时候遇到了诸多问题,最多的还是404问题.现在记录一下解决方案. 一.使用maven创建一个web项目,这一步网上都有,下 ...

  8. 【Maven】Eclipse 使用Maven创建SpringMVC Web项目

    创建环境 系统:win 10 软件:eclipse,maven. 创建步骤 创建一个Maven Web项目,可以参照:[Maven]Eclipse 使用Maven创建Java Web项目 添加spri ...

  9. 【Maven】 Eclipse使用Maven创建Java Web 项目(一)

    需求:创建一个Servlet版本3.0,Java版本是1.7的Maven Web项目 创建环境: 系统:window 7 软件:Eclipse.Maven 创建步骤: 1.使用eclipse工具创建m ...

随机推荐

  1. 【排序算法】冒泡排序算法 Java实现

    基本思想 设数组长度为N. 比较前后两个数据,如果前面的数据大于后面的数据,就将两个数据交换. 这样对数组的第0个数据到N - 1个数据进行遍历后,最大的一个数据就沉到了数组的第N - 1个位置. N ...

  2. 一次MySQL死锁问题解决

    一次MySQL死锁问题解决 一.环境 CentOS, MySQL 5.6.21-70, JPA 问题场景:系统有定时批量更新数据状态操作,每次更新上千条记录,表中总记录数约为500W左右. 二.错误日 ...

  3. Javascript定时器中的this指向

    使用js中的定时器(setInterval,setTimeout),很容易会遇到this指向的问题. 直接上例子: var name = 'my name is window'; var obj = ...

  4. 【转】Java通过IText导出word和pdf

    原帖地址:http://blog.csdn.net/zwx19921215/article/details/34439851 最近做的项目中需要用到把Highcharts图表导出word和pdf的功能 ...

  5. Linux 命令--查看物理CPU个数、核数、逻辑CPU个数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...

  6. HTML第二课

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 探究CSS中的包裹性

    之前一直都知道css中的部分元素具有包裹性,今天写博客的时候正好也遇到了一个,所以想总结一下,有错误的地方欢迎指出来. 什么是包裹性? 包裹性就是父元素的宽度会收缩到和内部元素宽度一样. 哪些元素具有 ...

  8. Express4.x动态的销毁或者替换中间件(app.unuse)

    需求描述 expres4.x托管静态资源时以中间件的方式将server-static挂载到app上,正常的使用没有问题,但是有时候我们需要动态的托管一些静态资源,也就是静态资源的目录不确定的时候该怎么 ...

  9. Vue学习之路---No.2(分享心得,欢迎批评指正)

    昨天我们大致了解了有关Vue的基础知识和语法:今天我们继续在大V这条路上前进. 首先,我们回忆一下昨天提到的相关知识点: 1.了解Vue的核心理念------"数据驱动视图" 2. ...

  10. 算法模板——splay区间反转 2

    实现功能:同splay区间反转 1(基于BZOJ3223 文艺平衡树) 这次改用了一个全新的模板(HansBug:琢磨了我大半天啊有木有),大大简化了程序,同时对于splay的功能也有所完善 这里面没 ...