分类: Java
2008-12-23 14:33:51
J (java) W (web) S (studio)是一个集成、绿色、简洁的开发环境。JWS通过集成 maven2, ant, eclipse 使开发环境变成全绿色,甚至jdk都无需安装。这样开发团队就可以通过直接拷贝JWS实现开发环境的统一配置,缩短了项目的启动周期,方便了团队新成员的加入。由于JWS只是通过批处理使用所集成工具的核心功能,所以可看作是这些工具的最小组合,避免了由于安装大量插件造成IDE臃肿庞大、启动慢、配置复杂等问题。通过自定义maven插件实现的代码生成操作,灵活方便可扩展。JWS已经历3个内部稳定版本,支持Java代码的编译、打包、调试、执行等,目前只有WIN32下的批处理脚本,随后会增加LINUX下的。
J (java&javascript) P (project) T (template)是一个maven项目模板。通过优化组合Spring2, Struts2, IBATIS, Acegi Security, Freemarker, urlrewrite, JSON, JST, jQuery等优秀开源项目实现Web应用快速开发。通过模板生成的代码包含了基本的CRUD操作及客户端&服务端校验,规范了什么代码应该写在哪里,一切基于简单约定,无需任何配置。
可以下载 jws-jpt默认生成的mytest项目 快速预览jws-jpt效果,下载后解压 mytest.rar,在<解压目录>/src/main/webapp/下是静态页面,同时也是DEMO,浏览 index.html 可以看到生成的功能,静态页面展示的与实际启动了Web服务器的效果完全一致,区别只在于静态页面的数据是写在.json文件中模拟数据。分页功能是默认都有的,mytest中只有用户信息的模拟数据符合分页条件,所以静态页面中只有在用户管理中可以看到分页控制。Firefox下浏览静态页面会由于ajax的安全限制看不到效果,请使用IE6以上浏览器。注意不要阻止本地javascript的执行。
JPT所能解决的开发问题
jws-jpt-full-all.rar 已上传,下载了完整版就可跳过安装步骤1,2,3,4,5,9了。
)
ant (1.6以上,建议下载 ) maven2 (2.0.7以上,建议下载 ) eclipse (3.0以上,建议下载 & )。 数据库系统,目前默认生成的项目中包含了mysql和oracle9i的SQL脚本,默认使用mysql。 随后将发布完整版下载地址,那样就不需要下载上述工具了。安装步骤
1、下载jws-jpt1.0-src.zip,假设解压后的目录为
; 2、下载外部依赖所列工具。将jdk安装后(如果机器上已经装了1.5以上的jdk,则无需再下载,直接拷贝此目录即可)的目录拷贝到
/tools/jdk,ant解压后拷贝到 /tools/ant,maven2解压后拷贝到 /tools/m2,eclipse解压后拷贝到 /tools/eclipse,最后 的目录结构如下: ├─bin ├─docs ├─repository ├─settings ├─tools │ ├─ant │ │ ├─bin │ │ └─lib │ ├─eclipse │ │ ├─configuration │ │ ├─features │ │ ├─plugins │ │ └─readme │ ├─jdk │ │ ├─bin │ │ ├─include │ │ ├─jre │ │ └─lib │ └─m2 └─workspace 3、由于随后的操作要从远程仓库下载依赖库,所以要确保已经联网,而且防火墙没有阻止
/tools/jdk/bin/java.exe; 4、执行
/workspace/plugins/generator/bin/install.bat安装自定义maven2插件; 5、执行
/workspace/archetypes/jpt-basic/bin/install.bat安装项目模板; 6、执行
/bin/generate.bat创建新项目。创建过程中提示选择模板,直接输入1,随后的提示直接回车(如果输入n,则会提示输入具体设置),则会按默认生成名为mytest的项目,数据库默认使用mysql,数据库名mytest,用户名mytest,密码mytest; 7、使用
/workspace/mytest/docs/mysql/5.0下的SQL脚本创建数据库; 8、执行
/workspace/mytest/bin/jetty.bat启动jetty服务器; 9、上述4,5,6,8由于要远程下载依赖库,所以比较慢,下载的依赖库大概70M,最后
的目录结构如下: ├─bin ├─docs ├─repository │ ├─ant │ ├─aspectj │ ├─backport-util-concurrent │ ├─biz │ ├─bsh │ ├─classworlds │ ├─com │ ├─commons-beanutils │ ├─commons-betwixt │ ├─commons-cli │ ├─commons-codec │ ├─commons-collections │ ├─commons-dbcp │ ├─commons-digester │ ├─commons-el │ ├─commons-fileupload │ ├─commons-io │ ├─commons-lang │ ├─commons-logging │ ├─commons-pool │ ├─commons-validator │ ├─dom4j │ ├─doxia │ ├─fmpp │ ├─freemarker │ ├─geronimo-spec │ ├─isorelax │ ├─javax │ ├─jaxen │ ├─jdom │ ├─jline │ ├─jmock │ ├─jpt │ ├─jtidy │ ├─junit │ ├─log4j │ ├─msv │ ├─mx4j │ ├─mysql │ ├─net │ ├─opensymphony │ ├─org │ ├─oro │ ├─plexus │ ├─qdox │ ├─relaxngDatatype │ ├─saxpath │ ├─stax │ ├─taglibs │ ├─velocity │ ├─xerces │ ├─xml-apis │ └─xml-resolver ├─settings ├─tools └─workspace 10、启动IE,输入 进入登录界面,登录用户administrator,密码123456。如果跳过步骤7,8,也可以直接访问
/workspace/mytest/src/main/webapp/index.html,浏览静态DEMO; 11、如果要在eclipse中编辑代码,可执行
/workspace/mytest/bin/create-eclipse-project.bat创建eclipse项目文件,然后执行 /install.bat配置eclipse工作区,最后执行 /eclipse.bat启动eclipse,导入mytest项目即可。 自定义maven插件的使用
代码生成功能由maven插件实现,可通过批处理或在eclipse中直接调用
- 导出数据库结构为XML
/workspace/mytest/bin/export.bat 可以从数据库结构导出XML到 /workspace/mytest/src/test/resources/template/schema.xml,也可在eclipse中执行export扩展任务。
- 从XML生成全套CRUD代码
/workspace/mytest/bin/custom-generate.bat 从 /workspace/mytest/src/test/resources/template/schema.xml 生成全套的页面、sqlmaps、model和模型校验,如果目标目录存在相同文件,则不会覆盖而是将新文件保存到 /workspace/mytest/src/main/tmp下对应目录,以方便开发者从中拷贝代码进行合并。此步同样对应eclipse中custom-generate扩展任务。
- 从数据库生成全套CRUD代码
/workspace/mytest/bin/generate.bat 效果相当于上述两步的综合,不过不会生成schema.xml。对应eclipse中generate扩展任务。 自定义项目模板
/workspace/mytest/src/test/resources/template/下的文件是代码模板,由freemarker解析,maven插件会根据这里的模板针对数据库表生成对应的代码文件。 针对每张符合条件的数据库表将分别在
- SQL模板
/workspace/mytest/src/main/resources/sqlmaps/declare 和 /workspace/mytest/src/main/resources/sqlmaps/statement 下生成T .xml,其中nnn为三位数字是对数据库表统一分配的数字做为全局表别名,Model为从表名对应出的模型名。 针对每张符合条件的数据库表将在
- 模型模板
/workspace/mytest/src/main/java/ /model下生成 .java,其中package为生成项目时指定的java包名,这里为jpt,Model为从表名对应出的模型名。 针对每张符合条件的数据库表将在
- 校验模板
/workspace/mytest/src/main/resources/ /model下生成 -validation.xml,其中package为生成项目时指定的java包名,这里为jpt,Model为从表名对应出的模型名。 针对每张符合条件的数据库表将在
- 页面模板
/workspace/mytest/src/main/webapps/pages/ 下分别生成edit.html,index.html,new.html,show.html,在 /workspace/mytest/src/main/webapps/server/pages/ 下分别生成create.json,delete.json,destroy.json,edit.json,index.json,show.json,update.json其中model为从表名对应出的模型名。 可以使用freemarker+fmpp语法添加任意的新模板,适应不同类型应用。
- 其他模板
意见&建议
本项目完全来源于我实际使用的环境,可能侧重点会有所偏颇,真诚希望大家提出宝贵意见,联系方式:
- Email: duanaiguo@gmail.com
- MSN: duanaiguo@hotmail.com
- QQ: 394043733