3.引入一个现有的Maven-web-application项目
引入Maven项目和普通的web项目有所不同,如果你通过【File】->【Import Project】的方式来引入一个Maven-web项目的话,其结构项目目录结构会出现混乱。正确的方式如下图:

这样才是引入一个已经存在的maven-web项目的正确方式,小小的注意点。



4.环境配置与执行调试;
    针对一个项目的运行、编译和调试,首先我们引入一个项目,如上两幅图所示,然后用Maven进行编译,如下图所示按住Ctrl键选择clean 和 install两个选项,然后执行:

这是Run控制台执行成功的结果,代表编译成功。

第二步,添加Tomcat服务,如下图:

选择Tomcat安装路径:

第三步,部署 war包,如下图:

因为是调试,所以选择 FrameModel:war exploded。在你真正发布的程序中是 FrameModel:war这个包,注意分清。然后,进行Debug,如下图:

调试成功后,控制台结果如下:



5.Maven-web-application项目核心文件:pom.xml文件的结构分析
    OK,重头戏开始,Maven的pom.xml文件。pom文件定义了你项目中所有的第三方依赖和编译行为。这里给出一个简单的例子,要注意的地方在代码中都已经指出,代码如下:

[html] view plaincopy
  1. <span style="font-family:SimSun;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.Yangcl.org</groupId>
  4. <artifactId>FrameModel</artifactId>
  5. <packaging>war</packaging>  <!--这里定义了你项目的打包方式,有war/bundle等-->
  6. <name>FrameModel</name>
  7. <version>1.0.0-SNAPSHOT</version> <!--证明这是一个快照版本-->
  8. <properties>  <!--为pom定义一些常量,在pom中的其它地方可以直接引用-->
  9. <spring.version>3.1.1.RELEASE</spring.version>
  10. <struts.version>2.3.4</struts.version>
  11. <hibernate.version>3.6.9.Final</hibernate.version>
  12. <axis2.version>1.6.2</axis2.version>
  13. <mysql.version>5.1.9</mysql.version>
  14. <aspectj.version>1.6.9</aspectj.version>
  15. <slf4j.version>1.6.4</slf4j.version>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. </properties>
  18. <!-- 一个项目所依赖的全部Jar文件信息定义描述,这里不一一列出--> 
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework</groupId>
  22. <artifactId>spring-core</artifactId>
  23. <version>${spring.version}</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-web</artifactId>
  28. <version>${spring.version}</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-beans</artifactId>
  33. <version>${spring.version}</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework</groupId>
  37. <artifactId>spring-tx</artifactId>
  38. <version>${spring.version}</version>
  39. </dependency>
  40. </dependencies>
  41. <!--针对一个项目的编译环节-->  
  42. <build>
  43. <!--finalName 属性是你项目的名字-->  
  44. <finalName>FrameModel</finalName>
  45. <plugins>
  46. <!--编译操作的定义--> 
  47. <plugin>
  48. <groupId>org.apache.maven.plugins</groupId>
  49. <artifactId>maven-compiler-plugin</artifactId>
  50. <version>2.3.2</version>
  51. <configuration>
  52. <source>1.6</source>
  53. <target>1.6</target>
  54. </configuration>
  55. </plugin>
  56. <!--Maven的打包部署与Debug行为描述-->  
  57. <plugin>
  58. <artifactId>maven-war-plugin</artifactId>
  59. <version>2.1.1</version>
  60. <configuration>      <!-- 有这个定义,则你调试的时候不会进入target目录下,你就不用总去重启服务,尤其在页面调试的时候很方便 -->
  61. <webappDirectory>${basedir}/src/main/webapp</webappDirectory>
  62. <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
  63. </configuration>
  64. </plugin>
  65. <!--maven-surefire-plugin支持JUnit和TestNG--> 
                <!--默认情况下,maven-surefire-plugin的test目标会自动执行测试源码--> 
                <!--路径下所有以Test开头、Test或TestCase结尾的的Java类。-->  
  66. <plugin>
  67. <groupId>org.apache.maven.plugins</groupId>
  68. <artifactId>maven-surefire-plugin</artifactId>
  69. <version>2.7.1</version>
  70. <configuration>
  71. <skipTests>true</skipTests> <!--这里选择跳过测试> 
  72. </configuration>
  73. </plugin>
  74. <!--Maven Clean 操作-->
  75. <plugin>
  76. <groupId>org.apache.maven.plugins</groupId>
  77. <artifactId>maven-clean-plugin</artifactId>
  78. <version>2.4.1</version>
  79. <configuration>
  80. <filesets>
  81. <fileset>
  82. <directory>${basedir}/src/main/webapp/WEB-INF/</directory>
  83. <excludes>      <!--排除哪些内容不被清除--> 
  84. <excluse>**/web.xml</excluse>
  85. </excludes>
  86. </fileset>
  87. </filesets>
  88. </configuration>
  89. </plugin>
  90. </plugins>
  91. </build>
  92. </project>

OK,到现在为止,Maven-web-application的所有实现、调试、细节和原理基本都已经介绍完毕。这里顺便点评一下几个主流的IDE:Eclipse、MyEclipse和IntelliJ IDEA。这三个编辑器里我个人觉得最好用的还是IDEA,毕竟是收费的软件,用户体验就是高。MyEclipse明显有些臃肿,而且针对ExtJS4.0以上的版本,他支持的不好,即使在调节和优化了以后,也还是会出现内存溢出的问题;你可能会说是你自己不会用,我的怎么就没事呢?那是因为你遇到的项目小。同样在对 Maven 的支持上,Eclipse也明显没有 IDEA 做的好。以前闲来无事,还特意探究了下这两个IDE的插件机制,我发现IDEA的插件机制和Eclipse、MyEclipse区别还是很大,虽然思想都是基于OSGI。我个人觉得 IDEA 十分适合开发Web程序,尤其是Maven Web程序。o(︶︿︶)o 唉...好累,为了改这篇博客我重新装了一个空白的虚拟机,希望能对大家有所帮助吧,下面给大家两个链接,都是做好的Maven web程序,自己可以试一试。

第一个项目工程:http://download.csdn.net/detail/breatheryang/5294757
第二个项目工程:http://download.csdn.net/detail/breatheryang/5549101

如果您有什么高见,欢迎给我留言,咱们可以交流下,共同进步!

IntelliJ IDEA 12.0搭建Maven Web SSH2架构项目示例(二)相关推荐

  1. IntelliJ IDEA 12.0.3 更新版发布

    IntelliJ IDEA 12.0.3 更新版发布了,该版本更多还是 bug 的修复,详情请看发行说明. Android   IDEA-95988 (Usability Problem) Expor ...

  2. idea搭建 maven web项目

    idea搭建 maven web项目 1.Create new Project 2.选择Maven,勾选Create from archetype 在archetype中选择:org.apache.m ...

  3. intellij idea 12 搭建maven web项目 freemarker + spring mvc

    配置spring mvc ,写这篇文章的时候spring已经出了4.0 这里还是用稳定的3.2.7.RELEASE,先把spring和freemarker配置好 1.spring mvc配置 在web ...

  4. java web 显示项目下的图片_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在 six-finger-web 一个Web后端 ...

  5. apache为什么更适合处理动态请求_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在 six-finger-web 一个Web后端 ...

  6. intellij java web_IntelliJ IDEA 搭建 Java web

    原标题:IntelliJ IDEA 搭建 Java web 新建项目打开idea工具,选择新建项目file-> new -> project.选择maven,选择项目jdk的版本,在右边的 ...

  7. java web项目_[适合初中级Java程序员修炼手册从0搭建整个Web项目](二)

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在 six-finger-web 一个Web后端 ...

  8. Intellij Idea 搭建一个完整的JavaWeb项目(二)

    手把手搭建一个完整的JavaWeb项目 本案例使用Servlet+jsp制作,用Intellij Idea IDE和Mysql数据库进行搭建,详细介绍了搭建过程及知识点. 主要功能有: 1.用户注册 ...

  9. 学习搭建maven风格的springmvc项目(一)——入门

     step1:首先在eclispe中新建一个maven项目:new->project->Maven Project,artifact选择webapp: step2:填写项目的group ...

  10. 【React进阶-1】从0搭建一个完整的React项目(入门篇)

    这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶.万字长文,请各位有足够的时间时再来阅读和学习. 概述 平时工作中一直在用React提供的脚手架工具搭建React项目, ...

最新文章

  1. pytorch 加载模型报错:‘function‘ object has no attribute ‘copy‘
  2. Michael Jordan:当下的AI其实都是伪“AI”
  3. Rhel6.0升级内核到3.0.4
  4. 深度学习——人工神经网络再掀研究热潮
  5. 使用photoview+viewpager实现图片缩放切换(类似微信朋友圈图片查看)
  6. 关于Matlab编程的思考(待续)
  7. 【WEB API项目实战干货系列】- WEB API入门(一)
  8. 远控免杀专题9 --- Avet免杀
  9. C#中的修饰符及其说明
  10. 抓包及分析包的常用命令
  11. 5G产业最新投资机会,25页PPT
  12. php 微信获取code,微信网页授权接口为什么获取不到code(已解决)
  13. 初识JS-基础中的基础
  14. 小白初学Vue之 组件与实例的关系 初试篇
  15. matlab 8750h,[多图]九代i7-9750H笔记本标压处理器与前代8750H性能对比
  16. yasm linux gcc,yasm安装出现问题
  17. 阿里云CDN回源host理解
  18. 《代码大全2》第3章 三思而后行,前期准备
  19. C语言自学笔记,第一天
  20. Unraid6.9.1开心版安装

热门文章

  1. 越狱后如何添加cydia源及cydia源大全
  2. 《沸腾十五年》 豆瓣评分[8.20]覆雨翻云的中国网事; 荡气回肠的产业传奇;虚拟世界的真实讲述;万象网络的还原走笔。...
  3. C#多个DataTable根据某一列匹配,其余字段相加求和的高效算法。
  4. 小程序嵌套h5页面_小程序内嵌H5的方法介绍
  5. OpenStack在天河二号的大规模部署实践(转)
  6. 工伤单险可以单独缴纳?或者是面对非全用工形式的员工是否可以缴纳工伤单险?
  7. 数据结构之线性表,这一篇就够了,吐血总结,建议收藏~~
  8. ansible模块专项练习题
  9. layui树形美化_Layui导航树美化 - walkwithdream的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. windows 添加开机启动项