java开发--正确使用插件让你的工作都在eclipse下完成(all work in eclipse)

 

     这次升级到eclipse到juno版本,趁机整理了常用的eclipse plugin,目标是为了让开发人员尽可能把工作环境集中在eclipse上,而不用打开各式各样的文档编辑器或一堆其他别的软件。由于开发过程中每个团队使用的软件各不相同,因此本文更多的是一个在eclipse集成思路,不同团队可以根据自己的需要集成与本文不同的插件。

     这里先说明本团队的开发集成环境

版本控制:egit

aop(部分):aspectj

项目控制:maven

bug管理:jira

web中间件:tomcat

中间件热布署加强:jrebel

关系数据库:MySQL

NoSQL:MongoDB

页面实现:FreeMarker

主体框架:Spring+Struts

集成发布:jenkins

 

其他项目属性及目标:

字符集:UTF-8

目标1:代码快速生成Spring+Struts

目标2:集成链接jenkins、jira,在eclipse即时管理bug,修复bug;在eclipse即时集成发布。

目标3:在eclipse里完成数据库设计,链接数据库及相关数据操作。

目标4:快速生成测试框架代码,持续集成测试(这个目标暂列未实现)

 

 

一、版本控制,egit - http://download.eclipse.org/egit/updates

   git使用相对比较复杂,guide:http://wiki.eclipse.org/EGit/User_Guide

   (之所以把egit放在第一个位置,是因为在安装的过程中走了弯路:   在实际操作时随意安装了一些插件后,再安装egit plugin时,安装过程没有任何问题,但在eclipse界面里,egit怎么也出不来。无奈只好再次打开一个刚下载干净的eclipse,这次第一个先安装egit插件,问题解决。)为了不浪费时间,还是乖乖的第一个先装egit插件吧,虽然可能其他人不会出现这样的问题。

 

二、aop实现,ajdt aspectj插件

 

三、maven项目控制,m2eclipse maven插件

 

四、bug管理跟踪,jira plugin 连接jira插件(也可以在mylyn connector discovery下安装)

 

升级到juno并安装上述四步后先导入工程

导入后pom.xml出错

1、工程报错,需要依赖tools.jar 1.5版本,这跟eclipse升级后的启动初始有关系,解决办法:修改eclipse.ini文件,在-vmarg之前加上-vm

D:\java\jdk1.6.0_17\bin

重起eclipse发现问题得到解决,当然直接用命令的方式eclipse -vm "D:\java\jdk1.6.0_17\bin"也是一样的。另外一种办法就是在pom.xml文件加上这个依赖包。

2、升级m2eclipse版本后,对以下语句不能编译通过

   <executions>

          <execution>

              <id>compile and test-compile</id>

              <goals>

                <goal>compile</goal>

                <goal>test-compile</goal>

              </goals>

          </execution>

      </executions>

用以下办法解决:

Preferences->Maven->Discovery->Open Catalog选择安装m2e wtp。安装后根据错误提示,点击确定会自动加上一些m2e配置片段。

然后maven->update project,错误消失。


都正常后,把工程置为maven、aspect,正常连接git和jira,一切都正常了。接下来装tomcat插件

 

 

五、热布署,jrebel http://zeroturnaround.com/software/jrebel/eclipse-jrebel-tutorial/

 

六、tomcatplugin

 

七、shell and folder plugin 可以快捷打开window cmd、linux和unix的terminal,快捷定位到文件的位置

       http://openextern.googlecode.com/svn/trunk/openextern_update/

      安装这个插件,可以通过这个插件打开的命令窗口并定位到目录。在我们的开发习惯里,自带的m2eclipse及egit插件与命令行相比,还是有要弱很多,因此在工作过程中,可以利用此插件,快速打开命令窗口并定位到要操作的目录。为了方便起见,先把mvn及git执行

     目录先设置到环境变量PATH里,这样在定位到目录后可直接执行命令。可以省下不少上下文操作时间。

 

八、UTF-8编辑器,propertiese editor plugin

 

九、Spring+Struts代码快速生成,fast-code for spring plugin  http://sourceforge.net/projects/fast- code/files/update/

      fastcode一定要注意其命名规则,之前的dao命名都被命名成XxxDao,而fastcode默认为XxxDAO,到fastcode配置里把默认的都改成DAO改成Dao,就我们的项目业务层,主要启用

   1、pojo生成,如果数据库使用mysql、oracle、postgresQL等关系型数据库,可以配置数据库链接,自动生成pojo;

      生成的java文件命名为TablenamePOJO.java,想改成直接命名Tablename.java,但找不到配置,只得生成

      TablenamePOJO.java后再重命名成Tablename.java。

   2、创建dao接口及实现类,通常关系型数据库与NoSQL数据库的父类BaseDao会分开写,因此这里继续哪个Dao需要在开发过程中自行设置。

      Dao命名按命名规则,中间字母不要出现大写。

      这里关系型数据库MySQL时Code In the Class(Body)配置,以下代码样例

 

      private static final Table T = new Table(
			"${input.toLowerCase()}",
			"",// to fill primary key,if composite key,use String[]
			new String[] {
                         /* developer to fill data column */
			}
	);
	
	public static final ParameterizedRowMapper<${input}> map = new ParameterizedRowMapper<${input}>() {
		public ${input} mapRow(ResultSet rs, int rowNum) throws SQLException {
			${input} entity = new ${input}();
			/* developer to set properties */
			return entity;
		}
};

public ${input} get(String uuid){
    return getJdbcTemplate().queryForObject(T.buildSqlSelect(" uuid = ? "),
				map,
				uuid
		);
}

public void insert(${input} ${input.toLowerCase()}) {

			getJdbcTemplate().update(T.getSqlInsert()/* developer to fill entity.getColumn*/);
}

public void update(${input} ${input.toLowerCase()}) {

			getJdbcTemplate().update(T.getSqlUpdate()/* developer to fill entity.getColumn,last parameter is primary key*/);
}

public void delete(String uuid) {
		getJdbcTemplate().update(T.buildSqlDelete("uuid = ?"), uuid);
}

public Result<${input}> getResult(/** to fill other parameters **/ int offset,int limit){
	return null;
}
 

 

 

   MongoDB使用以下配置

 

public ${input} get(String uuid){
    return super.get(uuid);
}

public void save${input}(${input} ${input.toLowerCase()}) {

			super.save(${input.toLowerCase()});
}
public void delete(String uuid) {
		super.deleteByQuery(createQuery().filter("uuid", uuid));
}

public Result<${input}> getResult(/** to fill other parameters **/ int offset,int limit){
	return null;
}
 

    这些代码只生成在DaoImpl.java里,Dao接口本身不能产生以上接口,还得花几秒钟的时间把以上代码拷到Dao接口代码里,

   然后Ctrl+F 输入Find:\)[\s]*\{[^\}]*\} Replace with: );点Replace All,这样在接口里就有这5个默认的接口了。

   如果需要其他接口和实现,开发人员再自行新增。

 

   3、生成相似类,相似类从Dao接口生成Service接口及ServiceImpl

   4、从service生成action,默认是生成handler,修改配置后让忽略handler命名,直接生成action

   5、如果手动创建了dao接口,可以利用Create Similar Preference Different Name生成Dao实现类。(默认只能Dao接口生成对应的implements对象)

   6、插件还可以生成测试框架代码,使用过程中有点问题,暂不支持。

 

 

 

十、freemarker plugin 在marketplace搜索freemarker,安装JBoss Tools(Indigo);非常庞大,选中其中的freemarker ide安装即可。

 

十一、Hundson/Jenkins 

    mylyn的一个connector,安装的时候从mylyn connector discovery进入安装,但这个搜索非常不稳定,10次里只有一两次成功。

    mylyn把connector分成task repository、team repository。Hundson/Jenkins connector属于team repository。安装成功,不能通过

    Validate校验。原因是hundson connector对Jenkins 1.447之后的版本支持存在bug。目前只有一种解决办法把jenkins退回到1.447版本。

    另外新装的jenkins有几个插件必须装上

    Jenkins GIT plugin

    Deploy to container Plugin

    还有相关的SSH插件分不清是哪个,是SSH都勾上装了

 

十二、MonjaDB -- mongodb client plugin

 

十三、Database Designer(未破解)

有了这两个数据库客户端插件,可以考虑不用安装数据库客户端软件,也可以直接用于设计关系型数据库,进一步脱离像powerdesigner及UML之类的软件。因为eclipse可以基于Windows、Mac及其他Linux操作系统,这样可以很好的移植开发环境。

 

十四、更炫的风格选择,Eclipse Color Theme Plugin

 

十五、一直想找个email收发的插件,只有一个for outlook,且受限于操作系统平台并且是商用的。

    附foxmail设置如果使用foxmail可以在系统设置里,设置成自动启动;关闭时最小化到托盘区,不退出,这样邮箱在外关上不占界面显示。

    另外在邮箱帐号属性->服务器 默认设置 每隔15分钟自动收取新邮件。时间间隔可以置更长或更短,这样可以让邮箱来通知开发者是否有其他新任务。

    最后如果你想对某些邮件做自动回复,可以在过滤器里帮设置。

 

 

你可能感兴趣的:(eclipse,maven,Jenkins,plugin,fastcode)