Idea web工程的理解

首先理解几个概念
Compile、Make和Build的区别

针对Java的开发工具,一般都有Compile、Make和Build三个菜单项,完成的功能的都差不多,但是又有区别。

编译,是将源代码转换为可执行代码的过程。编译需要指定源文件和编译输出的文件路径(输出目录)。Java的编译会将java编译为class 文件,将非java的文件(一般成为资源文件、比如图片、xml、txt、poperties等文件)原封不动的复制到编译输出目录,并保持源文件夹的目 录层次关系。

在Java的集成开发环境中,比如Eclipse、IDEA中,有常常有三种与编译相关的选项Compile、Make、Build三个选项。这三个选项最基本的功能都是完成编译过程。但又有很大的区别,区别如下:
1、Compile:只编译选定的目标,不管之前是否已经编译过。

2、Make:编译选定的目标,但是Make只编译上次编译变化过的文件,减少重复劳动,节省时间。(具体怎么检查未变化,这个就不用考虑了,IDE自己内部会搞定这些的)

3、Build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。Build过程往往会生成发布包,这个具体要看对IDE的配置 了,Build在实际中应用很少,因为开发时候基本上不用,发布生产时候一般都用ANT等工具来发布。Build因为要全部编译,还要执行打包等额外工 作,因此时间较长。

在idea中make module的作用就是编译当前项目修改过的内容,比如修改过的java文件
command+F9 也是编译的作用




介绍工程结构
ProjectSetting
Project 理解为当前工作空间,这里的工作空间为dev
Modules 当前工作空间中的项目模块
比如:
yt-account
yt-coms
yt-posweb
yt-sso
等都是工作空间中的具体项目,这里的每一个项目都是一个完整的web工程
Libraries 顾名思义,就是当前的包依赖
Facets 是指描述项目的重要配置,比如对于web工程来讲,最重要的2个概念
a. Deployment Descriptors 工程启动配置描述文件:    web.xml文件
b. Web Resource Directories  web资源文件:context root下的文件,包括js,css,jsp,WEB-INFO/* (classes,lib)
Artifacts 打包后的产物,可以是归档比如*.war,*.jar,  也可以是存打包文件树形式的工程结果集

OK,从这里开始一个一个介绍

Project
主要设置当前工作空间的名字,设置SDK及JDK
设置了一个通用的编译输入地址,当然,我们对各个模块会配置自己对应的编译地址,所以这里也可以不设置通用的编译输出地址


Modules
3个重要的概念
source 编译的源文件位置,如java,资源文件*.xml, *.properties, 一般情况这里有5种设置,生产运行的class源源路经,生产运行de资源源路经,测试运行的class源路经,测试运行的资源源路经,需要在打包时排除的Excluded文件源源路经
Paths
Dependencies


path 设置了编译java文件完成后的输出路经,并且这里指定了我们的输出路经由module自己设定,不适用Project设置的全局编译输出路经。


dependencies 设置依赖
这里设置了jdk为1.8
通过‘+’按钮添加工程jar包依赖和服务器jar包依赖,需要注意的是,jar包依赖设置了依赖范围,如compile编译后包含,provide编译时依赖但编译后不打包到具体的*.war中


Libraries 设置依赖jar包组,为了在dependencies步骤中更清晰快捷的引用依赖的jar包,这里可以设置一些别名来圈定一些列的jar包


Facets,理解为方面。idea里面他是指那方面呢?当然,在这里它描述的是对应项目的结构
web是当前项目的类型,
Web Module Deployment Descriptor 就是指 web.xml项目启动配置文件
Web Resource Directories 项目资源文件所在位置,资源文件有很多,包括js,css,jsp等等
Source Root 项目中java文件位置



Artifacts 结晶,产物。这里就是说打包后用于生产发布的东东
Output directory 说明了打包后保存这个产物的位置
Web Application:Archive  说明使用了归档形式,就是打包后是一个sso.war的文件
如果使用Web Application:Exploded 则打包后,依旧是一个文件树形目录结构的产物
起它的就是不同的规范大的不同的包,有兴趣自己查资料

output Layout     Validation  Pre-processing Post-processing
通过这些词的意思,你可以知道,他就是模仿ant,maven等打包工具,一个打包的lifecycle生命周期的顺序

对于一个web工程来讲,最重要的j2ee规范概念就是里面有一个META-INF/MANIFEST.MF工程描述文件,
WEB-INF/web.xml  工程启动配置文件,  WEB-INF/lib  第3方jar包依赖, WEB-INF/classes 本工程java代码编译输出地址
context root 就是指 ‘WebContent’directory contents 
在artifacts配置模版中都体现出来了



SDK
就是本工作空间的jdk


Global Libraries 就不介绍了,指的全局jar包依赖组的别名管理

Problems,这个玩意很重要,如果工作空间的项目配置有问题,这里会给出Problem的提示,有些时候,可以在这里通过阅读问题内容,点击提示的fix自动修正错误。当然有些时候,还是需要充分理解以后手动修复的。

如果打包呢?
idea 中 Build选项,


我已经配置了很多中打包方式,包括打成*.war包的,打成文件树形结构的,idea打包和ant,maven打包都很像,执行对应的target或者phase就可以打出我们想要的产物了
这里需要注意的是Action默认配置有3种,Build , Rebuild, Clean.
Build会根据项目文件是否发生改变,实现智能聪明的效率高的打包;
Rebuild不管文件是否发生改变,都会删除原来打包的文件,重新打包
Clean就是直接删除上一次打包的文件



配置服务器,这里使用tomcat作为介绍的对象
点击Run  -》 Edit Configuration
增加tomcat server的步骤就不介绍了,太简单
这里注意下
on 'Update' action
on frame deactivation
这里设置成 Update classes and resources 是为了debug调试用的
Before launch:Make, Build Artifacts, Activate tool window  这个配置中Make是用来针对src/*.java文件编译到WEB-INFO/classess下, Build Artifacts是打包生成打包命令中配置的文件形式到指定位置, Activate tool Window我理解的是上面
配置的浏览器Chrome,当tomcat服务器启动完成后用来自动打开当前打包的工程,展示内容到浏览器

猜你喜欢

转载自spice.iteye.com/blog/2361011
今日推荐