Spring Roo学习笔记(1)——介绍
Roo is not a runtime:只介入开发过程,这点我很喜欢。
Roo is not an IDE plugin:可以用eclipse的STS插件,但不依赖于IDE,好处是更新或者切换版本时不至于太突兀,这点用过某XXStudio就感同身受了。
Roo is not an annotation processing library:Roo不会使用java的api来处理ann,也就是说它都不介入compile阶段,它只是把java文件当文本文件来处理里面的ann。
?
万恶的maven再次出现,Roo构建出来的project是基于pom结构的。
?
10分钟构建一个web app:
- 在eclipse的new wizard中新建一个Roo项目——ten-minutes,相当于先建立一个ten-minutes目录,然后在该目录下使用roo命令,并在roo提示符下运行 roo> project --topLevelPackage hale.roo.tenminutes

?

?


?
?使用hint命令后,ROO会告诉你下一步该做啥

?选择需要使用的JPA和database,使用roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY新建Entity,使用roo> entity --class ~.domain.Timer --testAutomatically(~在roo的命令行里代表top package name)对Timer对象新增message属性,使用 roo> field string --fieldName message --notNull对所有实体对象建立控制器,使用 roo> controller all --package ~.web为controller建立selenium的自动化web测试脚本,使用 roo> selenium test --controller ~.web.TimerController执行tester,使用 roo> perform tests 在target目录下生成surefire-reports/TEST-hale.roo.tenminutes.domain.TimerIntegrationTest.xml的junit的report(该命令相当于mvn:test)打包,使用 roo> perform package 在target目录下生成ten-minutes-0.1.0.BUILD-SNAPSHOT.war (该命令相当于mvn:package)运行项目,进入ten-minutes目录下运行mvn tomcat:run, 然后通过http://localhost:8080/ten-minutes访问app自动化测试,进入ten-minutes目录下运行mvn selenium:selenese
由于万恶的maven,导致整个过程远远大于10分钟。
?
可以将上述一系列roo命令编制成一个sciprt文件批量执行,使用roo> script --file filename.roo
roo> perform eclipse 相当与 mvn eclipse:eclipse,可以把项目转化为eclipse项目
roo> gwt setup 还可以在web层使用gwt
roo的perform命令可以被相应的maven命令替换。
?