Intellij IDEA 的使用

前言:

为什么我要选择intellij idea呢?原因有三

1.以前公司的项目 在myeclipse10中不稳定 myeclipse说不定什么时候就崩溃卡死了  而intellij很稳定

2.界面高端洋气 用我朋友的话说 看着跟搞苹果开发一样

3.项目的支持上比较好 基本上web项目都可以导入进来 

比如mybatis的官方项目 是maven的 在myeclipse中就不能直接导入

intellij支持了 目前基本上所有的项目  尤其是maven项目

推荐一下黄勇的这篇《使用 IDEA + Maven + Git 快速开发Java Web 应用》
http://my.oschina.net/huangyong/blog/175363

下面步入正题:

1.黑色主题 中文乱码修改

修改黑色主题 Settings->Appearences ->Themes->Darcula  系统提示重启加载主题

重启后Settings->Appearences  ->勾选Override default fonts by 

 出现这种情况 不用害怕  

 只用随便选择一个乱码的   点击保存 中文汉字就出来了

2.WEB项目的部署 以及自动编译

Intellij中  web的程序 部署 不同于myeclipse和eclipse

需要把项目打成一个Artifacts(成品包)的war包 然后在 配置的tomcat的Deployment中选择对应的war包

具体的可以看下这个帖子 http://my.oschina.net/tsl0922/blog/94621

我要强调的是 非maven的项目  比如网上下载的eclipse或者myeclipse项目

首选要检查项目设置  F4 或者 Ctrl+ALT+SHIFT+S 或者 快捷栏中 点项目设置

以JFinal项目为例子  导入项目后 打开项目设置

1.首先修改Modules  选择 SDK  也就是你系统上的JDK  然后把项目中的不支持红色的选项去掉

2.添加项目的类型 支持

 比如你这个项目 是Spring的项目 可以加上Spring  以及在对应Spring的配置中 手中选中spring的配置文件

加上Web项目的支持 制定web.xml的路径  以为web的目录 

如果是maven项目  这些都不用管  但是非maven项目 因为目录结构不同  IDEA默认找的 项目下的web目录 

所以项目往往不能正确部署 或者部署不正确 都是这个地方的原因 

这个Modules  设置正确后  就可以创建Artifaces了  IDEA右下角也会提示你的Create Artifaces


3.添加项目的lib依赖

需要选择项目中的 web-inf中的lib   默认是不会自动加进来的  

如果是maven项目 这个就不要管了 

4.选择Artifaces的exploded war包  (如果是之前点击右下角系统的提示创建 就不用这样了)

 


5修改项目的输出目录

修改项目的编译输出目录  最好改为 jfinal_demo_for_jsp\target\ROOT(或者项目名)

因为maven的编译目录就是target目录 所以我们最好也按照maven的规则

6.项目 在服务器中的部署

选中我们的artifaces的war包  右边可以自定义项目的访问 名

左下角是 我们的项目 在服务器第一次启动时 需要做的事情  1.编译java类 2.打包部署war

这两个项目编译运行过 就可以给两个去掉了 以后我们再启动项目 就不用在去编译打包部署了

7.项目的服务器配置

在服务器配置中 注意几个地方

1.start browser  项目启动后 自动打开浏览器 访问对应的连接 

2.on update action :当发现更新时的操作   选择update classes and resources 

on frame deactivation: 当IDEA 切换时的操作 (比如缩下去 打开网页) 选择update classes and resources 

也就是 自动编译 自动部署的功能 很多人说Intellij IDEA 不能自动编译 就是这个这个地方没设置好

3.可以选择端口 一个是jvm的端口 一个是tomcat的端口 如果我们同时运行多个项目 可以选择修改端口 就能直接同时运行多个项目

4.项目运行后 这两个就不需要了  

或者我们是maven项目 直接可以在maven中 packages 打包 编译 这两个也都不需要了

然后启动项目  就会弹出我们的项目首页了

总结一下 里面需要注意的几个地方

1.modules里面 添加项目类型 以及配置文件是否指定正确

2.lib文件的添加

3.artifacts 选择exploded 的war包 选择编译目录

4.服务起中 配置 热部署 端口 等

3.多项目的同时部署

intellij中工作空间和项目的概念和 myeclipse稍微有点不同  这个大家可以查看相关资料 

之前@黄勇 大哥发的java框架对比  就是一个项目中 有多个modules 

因为黄勇的项目 都是maven项目 就没有过多需要修改配置的地方

当时modules和artifacts里面好像都没有修改  多个子项目 可以在tomcat的deployment 同时部署

只用给每个项目 在右侧修改一下项目名字就OK了


4.相关插件提高工作效率

1.JRebel插件 实现热部署

可以集成JRebel   实现热部署  安装Tasks插件 集成JIRA等任务管理

1.修改idea.properties   在intellij的安装目录  bin\目录下   


修改到你的非C盘目录目录下  默认使用的 # idea.config.path=${user.home}/.IntelliJIdea/ 

这样的好处是 当你更换系统时 intellij的配置和插件都在  可以直接继续使用

2.安装JRebel插件

Settings - Plugins - Browse repositories...  搜索JRebel   然后右键 Download and Install

里面其实有很多插件 具体插件的功能 可以去官网进行查看 http://plugins.jetbrains.com/?idea

插件会下载 安装在 E:\.IntelliJIdea\config\plugins  也就是刚才配置的 config\plugins下

3.JRebel 破解  需要替换E:\.IntelliJIdea\config\plugins\jr-ide-idea\lib\jrebel  下的jrebel.jar

以及在intellij中 指定对应的lrc文件

然后重启下intellij   JRebel就可以使用了  热部署效果非常的好

修改东西都不用重启 而且项目在长期运行中也不会出现崩溃  (以前热部署遇到过session崩溃的问题)

如果是maven项目 修改配置文件也都不用重启 比如mybatis的xml文件等

除了web.xml修改好像需要

4 如果JRebel不起作用 可以使用下面的方法

在Modules下 添加JRebel的支持 勾选  并点击后面的Generate rebel.xml

在你项目的配置文件中找到生成的rebel.xml  你会发现 它里面有两个目录

一个是java类的编译目录 一个是webroot的目录  

也就是JRebel的监控目录 它会监控那个两个目录  如果发生文件变化 就在内存中重新加载对应的资源

非maven项目的静态资源发生变化后 如果不能热部署  可能就是JRebel监控的目录不太对 

可以自己指定一下正确的目录


2.Tasks插件 集成任务管理


Intellij中可以安装task插件 与jira等任务跟踪管理系统进行集成
安装插件后  会在系统任务栏上显示  任务插件  显示当前的任务 以及最近的任务
每个任务 可以创建不同的视图 
在不同视图下 会自动记录 当前任务下 修改过的页面 
所以这个功能相当的棒  当我们有多个jira任务时  可以随时切换任务 
任务完成后  我们可以根据任务对应的changelist  去提交当前任务下 修改过的文件

破解文件的连接地址

 http://note.youdao.com/share/?id=33c21fb3c24e81c2781872525e22ade2&type=note

5.其它的一些技巧配置(未完待续)



PS:2013-11-28 Facets的作用


 


 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse设置、调优、使用

eclipse调优一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。 加快启动速度1.在eclipse启动的时候,它总是会搜索让其运行…

Guava 实用操作集合

guava 是 google 几个java核心类库的集合,包括集合、缓存、原生类型、并发、常用注解、基本字符串操作和I/O等等。 大家平时经常遇到某些相同的问题,自己写代码也都能解决。但是久而久之会感觉到很痛苦,因为我们一而再,再而三的重复发明轮子。…

Intellj Idea 如何设置类头注释和方法注释

intellj idea 如何设置类头注释和方法注释intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们也会被他的复杂搞的晕头转向,尤其刚从eclipse转过来的童鞋,相信刚开始的那段经历都是不堪回首的,我…

Logback介绍及入门

Logback简介 Logback是由log4j创始人设计的又一个开源日志组件。 logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API…

数据库事务隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 √: 可能出现 : 不会出现 脏读不可重复读幻读Read uncommitted√√√Read c…

分布式服务框架Dubbo使用小结

介绍: Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA 服务治理方案,每天为2,000个服务提供3,000,000,000次访问量支持,并被广泛应用于阿里巴巴…

XML解析-Dom4j的DOM解析方式更新XML

Dom4j工具,是非官方的,不在jdk中。 使用步骤: 1)导入dom4j的核心包。 dom4j-1.6.1.jar 2)编写Dom4j读取xml文件的代码 1、更新XML 1.1、写出内容到xml文档 package com.rk.xml.g_dom4j_write;import java.io.File; import java.io…

Qt前端技术:5.QSS

这个是表示QFrame中的pushButton中的子类和它子类的子类都将背景变为red 写成大于的时候表示只有直接的子类对象才会变 这个图中的QGroupBox和QPushButton都是QFrame的直接的子类 这个中的QGroupBox是QFrame的直接的子类但是QPushButton 是QGroupBox的子类,QPushB…

Spring定时任务的几种实现

近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合 spring框架来介绍。 一.分类 从…

解决quartz的job无法注入spring对象

一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类。 自定义一个类: [java] view plaincopy public class JobFactory extends AdaptableJobFactory { Autowired …

Activiti 基础概念

1、ProcessInstance 与ProcessDefinition 流程实例(ProcessInstance)和流程定义(ProcessDefinition)的关系,与类和实例对象的关系有点像,ProcessDefinition是整个流程步骤的说明而ProcessInstance就是指流程…

IP地址开启https

证书生成导入 keytool -genkey -alias ssozzjz5 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -dname "CN192.168.1.128,OUcsoa,Ocsoa,LFZ,STFZ,CCN" -ext sanip:192.168.1.128 -validity 3600 -keystore D:\ssozzjz5.keystorekeytool -export -f…

JDK线程池CompletionService的使用

最近使用多线程优化了一个非常耗时的ping任务,下面的是未优化的源代码,大致就是遍历es取出的list,然后循环判断是否能ping通: SearchResponse searchResponse client.search(searchRequest); Iterator it searchResponse.getHi…

解决mediawiki上传文件文件名是中文上传失败

公司内部的wiki是用的mediawiki,其它都还好就是上传文件时文件名中有中文就不能上传,这次下决心要修复这个问题,一开始我还以为是哪里需要配置一下,然后搜了半天发现这是一个官方的bug: 好吧,是官方bug也好…

Metricbeat添加ip address信息

Metricbeat默认输出信息里没有ip地址,6.3版本之后可以通过add_host_metadata 来开启附带ip信息(没测试过) 原本我是通过修改modules.d/system.yml文件,在每项后面加自定义fields.ip字段来添加ip信息,类似下面这样&…

前端获取不了rest请求自定义headers的问题

前端response中的自定义header信息默认同一域中可见 在crossdomain跨域情况下需要在服务器端增加Access-Control-Expose-Headers的支持 例如在springboot中需要使用addExposedHeader添加指定返回头: Configuration public class CORSConfiguration implements WebM…

如何右键文件夹以Sublime 打开

最近总是拖动文件在Sublime Text 的运行环境下,想着能否鼠标右键打开项目文件夹。以下是具体操作步骤 1 windows下打开运行(或者在windowr); 2 输入regedit 进入window配置列表里面 3 在注册表编辑器中找的这个节点:在 HKEY_CLASSSES_ROOT→Folder ll…

高性能网站建设指南

进行优化前,关键是剖析当前的web性能,找到性能瓶颈,从而确定最需改进的地方;如果精力有限,首先将精力放在能明显提升性能的改进点上; 《高性能网站建设指南》提出了一个性能黄金法则: 只有10%-20%的最终用户响应时间花…

js来读写cookie操作

因为之前公司的项目前后端是在一起的,因为要用vue来重构之前的项目。所以token签名要作为一个参数传递到后台。所以就遇到两个问题,1 token的保存和获取的问题。 2 token 判断。判断用户是否用token值。 首先先说一下 token的保存和获取问题。 保存到哪&#xff1…

MUI tab选项卡之间的切换和数据获取

查看mui官网上面的例子&#xff0c;会看到有多种tab 选项卡的例子&#xff0c;我就写下我用到的tab选项卡。写了个简单的例子&#xff0c;效果如下图 主页面的代码 <nav class"mui-bar mui-bar-tab"><a class"mui-tab-item mui-active" href"…