搭建maven & cometd过程
2010-3-27
近来想做个web game,需要双方持久链接,查了下资料,HTML5的websocket太遥远了得N年后才能流行,用FLASH模拟的socket又限制了没有FLASH插件的浏览器无法玩,最后研究了下comet,发现用这个实现应该靠谱,貌似WEBQQ,gmail里的gtalk,校内的站内提示和聊天都是用comet类似技术。后来找到cometd和pushlet,据说cometd更好,于是就开始捣鼓配置cometd。
配置环境这事儿,要是有有经验的人指点就好了,可以省去90%的时间,可惜没有~只能胡乱摸索。在完全不晓得maven是什么的情况下,配置这个cometd真是折腾死我了,先随便乱整费了很多时间,无果,再在eclipse下载maven插件,捣鼓半天运行不了,最后老老实实地用命令行的方式配置maven,也费了不少时间,但终于运行成功了。记下这个配置的过程,可能以后重装电脑要重新配置时有用。
目前在eclipse还是弄不好maven,运行项目时下载不到所需要的插件无法运行,我纳闷怎么在命令行就可以,在eclipse就不行,maven下载位置都是指向同一个,运行的也是同一个项目,但还是折腾不好。
配置maven
1.到http://maven.apache.org/下载maven,解压到任意一位置,以下假定maven解压地址为C:\Program Files\maven
2.配置环境变量,在变量path的值后面加上C:\Program Files\maven\bin
3.确保jdk环境配置无误:
a.检查变量path的值里有无jdk地址,例如c:\Program Files\Java\jdk1.6.0_10\bin;
b.检查变量有无变量JAVA_HOME,没有则加上,值为JDK地址
4.打开命令提示符(开始-运行-cmd),输入mvn -version检查mvn是否成功配置。
5.打开C:\Program Files\maven\conf\settings.xml,找到<pluginGroups></pluginGroups>,在里面加入<pluginGroup>org.mortbay.jetty</pluginGroup> 如果不加入这句,maven会无法找到和下载jetty,待会运行cometd时会出现这样的错误:
org.apache.maven.plugins:maven-jetty-plugin does not exist or no valid version could be found
6.maven自动下载插件等东西时默认保存在 我的文档/.m2/ 下,如果要改变这个位置,例如保存到maven目录下的down文件夹,可以在setting.xml里面加入<localRepository>/down</localRepository>。注意,目录名字不能有空格,例如c:\program files这个地址是不合法的。
配置cometd
搞定maven后就很简单了,打开cmd,照http://cometd.org/documentation/howtos/primer这上面的步骤输入:
mvn archetype:generate -DarchetypeCatalog=http://cometd.org
选择工程类型,照上述网址的说明输入一些配置信息,就新建好了一个cometd工程
此过程中maven会自动下载cometd的库
$ mvn archetype:generate -DarchetypeCatalog=http://cometd.org
…
Choose archetype:
1: local -> cometd-archetype-dojo-jetty6 (CometD :: Archetypes :: Dojo and Jetty6)
2: local -> cometd-archetype-jquery-jetty6 (CometD :: Archetypes :: jQuery and Jetty6)
3: local -> cometd-archetype-dojo-jetty7 (CometD :: Archetypes :: Dojo and Jetty7)
4: local -> cometd-archetype-jquery-jetty7 (CometD :: Archetypes :: jQuery and Jetty7)
Choose a number: (1/2/3/4):Choose a number: (1/2/3/4): 3
Define value for groupId: : org.cometd.primers
Define value for artifactId: : dojo-jetty7-primer
Define value for version: 1.0-SNAPSHOT: :
Define value for package: org.cometd.primers: :
Confirm properties configuration:
jettyVersion: 7.0.1.v20091125
cometdVersion: 1.0.0
groupId: org.cometd.primers
artifactId: dojo-jetty7-primer
version: 1.0-SNAPSHOT
package: org.cometd.primers
Y: :
[INFO] BUILD SUCCESSFUL
上面的配置信息中,artifactId为这个工程的名字,假设是dojo-jetty7-primer,进入这个工程的目录:
cd dojo-jetty7-primer
再运行这个工程:
$mvn jetty:run
就可以打开http://localhost:8080/dojo-jetty7-primer看到helloworld了
另外可以到http://download.cometd.org/下载cometd,我是选择cometd-1.0.0.tgz,包含了编译后的文件,解压后进入cometd-demo目录,执行:
mvn jetty:run
即可在http://localhost:8080/下看到cometd的demo,有一个简易的聊天功能
高人物的东西,吾等仰望之。
继续看漫画去~大人家Game出来记得告诉我们哦