当前位置: 首页 > news >正文

Intellij IDEA创建Maven Web项目

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1前言

    在创建项目中,IDEA提供了很多项目模板,比如Spring MVC模板,可以直接创建一个基于Maven的Spring MVC的demo,各种配置都已经设定好了,直接编译部署就可以使用。

    最开始自己创建maven web项目时,要么创建一个springmvc项目进行修改,要么创建了一个maven项目(不是web项目),自己添加webapp目录添加配置web.xml文件,以及添加web moudle,配置属性等等。

    另外之前总结的几篇Intellij使用文章,里面多多少少都还有点问题,请以本篇为准。

    在Intellij 13.1以后的版本创建项目时的界面发生了调整,不过具体步骤都还是差不多的。本文使用的版本为13.1.2,

2创建Maven Web项目

new project——maven——勾选 create from archetype 选中webapp

124605_dwLv_140593.jpg   

  下一步 (图略)填写项目的 groupId  artifactId version 后Next 出现以下界面

124923_qbwQ_140593.jpg

Next后添加项目名称  Finish  

第一次使用时,可能需要下载archetype webapp的插件 有时候网络不好 可能需要很长时间 不过以后就好了

125309_a4Nf_140593.jpg

刚创建完之后,需要稍等一下,加载相应配置文件,之后如下图所示

125435_3MW0_140593.jpg

此时的项目已经是Maven的 webapp项目了

这个时候IDE还有缓存,需要在右侧Maven project中 刷新一下,加载pom中的配置

(以后在pom中添加jar的依赖后,都要点击maven project的刷新按钮 刷下缓存)

125800_zMBr_140593.jpg

这个时候Maven webapp项目就彻底创建好了  不需要再在project structure进行配置了

如下两图,都是默认给配置好的,不需要进行修改

130727_IR6m_140593.jpg

130727_w55p_140593.jpg

3关于Maven Web项目的配置说明

Project Structure中Artifaces的配置

如上图所示,在Aritifaces中有两个war,一个是war 一个是war exploded,在配置服务器时需要选择war exploded

千万要注意,这两个war都不应该是自己添加的,而是根据maven中的配置自己生成的

之前没有这两个war的时候,我都是自己创建,往往后果就是项目在编译后缺少jar包,依赖的jar没有自动拷贝

其实Intellij中的mavan项目配置,都是依赖于pom中的配置,如果pom中的配置正确,就不需要修改项目的IDE配置

  1. 首先pom要有<packaging>war</packaging>,如果pom中配置了这个,Aritifaces就会有上面的两个war

  2. 其次pom要有<build>    <finalName>test</finalName>  </build> 这个关系到上图中的output directory中的配置,finalName作为target下的项目目录,以及会创建对应名字的war包(比如test.war)

133220_ooJx_140593.jpg

配置src/main/java

如上图,src/main目录下缺少java目录,我们可以右键创建目录java,然后再modules中配置为sources目录

220519_ClRY_140593.jpg

220637_7gsA_140593.jpg

这样src/main/java图标就变成了蓝色,作为java源代码区了


谢谢@吴峻申,在Maven设置中,可以勾选这个选项,在修改pom时,自动添加依赖

(一直以为那个是自动导入maven project  )

182101_LfUE_140593.jpg


最后鸣谢一下@寇德林 整理一份非常好的intellij的使用教程,http://www.oschina.net/question/7728_150494

喜欢的朋友可以学习一下

转载于:https://my.oschina.net/lujianing/blog/266172

相关文章:

  • 求10 个整数中的最大值
  • java的poi技术读取Excel数据到MySQL
  • vs2005 splitContainer与arcengine toc控件
  • JSP2.0自定义标签
  • oracle用户名被锁定
  • hdu2084 DP
  • React中props.children和React.Children的区别
  • Java中 return 和finally
  • IT架构师绝对不能错过的34张史上最全技术知识图谱
  • 磁盘管理命令
  • 华信Sybase ASE数据库恢复软件 3.0
  • 复杂网络的统计描述
  • 复兴号动车组甲醛超标?中国铁路北京局:报道不实
  • YUM+NTP服务器的搭建 (RHEL6.1搭建) 纯文本
  • 组复制官方翻译四、Monitoring Group Replication
  • 2017-09-12 前端日报
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CAP 一致性协议及应用解析
  • HTTP--网络协议分层,http历史(二)
  • Java,console输出实时的转向GUI textbox
  • Java应用性能调优
  • js数组之filter
  • Laravel 实践之路: 数据库迁移与数据填充
  • mysql常用命令汇总
  • MySQL数据库运维之数据恢复
  • Nacos系列:Nacos的Java SDK使用
  • PhantomJS 安装
  • Python_网络编程
  • Rancher如何对接Ceph-RBD块存储
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Sass Day-01
  • Vue全家桶实现一个Web App
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 和 || 运算
  • 简析gRPC client 连接管理
  • 前端面试之CSS3新特性
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 手写双向链表LinkedList的几个常用功能
  • 我与Jetbrains的这些年
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define,static,const,三种常量的区别
  • $GOPATH/go.mod exists but should not goland
  • $jQuery 重写Alert样式方法
  • (4)STL算法之比较
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)Linux——Linux常用指令
  • (二)斐波那契Fabonacci函数
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (算法设计与分析)第一章算法概述-习题
  • (新)网络工程师考点串讲与真题详解
  • (转)用.Net的File控件上传文件的解决方案