学习《The Flex, Spring, and BlazeDS full stack》,使用maven flexmojos spring struts2 hibernate blazeDS创建多模块项目
flexmojos的最新版4.0-SNAPSHOT需要maven3,所以使用apache-maven-3.0-beta-2。。。
一.创建父项目
1.使用
mvn -DgroupId=org.adaikiss.kay -DartifactId=kay archetype:generate
创建父项目骨架,并做以下修改:
(1)删除kay目录下的src文件夹;
(2)编辑pom.xml将packaging由jar改为pom;
(3)编辑pom.xml添加以下内容
< repositories >
< repository >
< id > flex-mojos-repository </ id >
< url > http://repository.sonatype.org/content/groups/flexgroup </ url >
< releases >
< enabled > true </ enabled >
</ releases >
< snapshots >
< enabled > true </ enabled >
</ snapshots >
</ repository >
< repository >
< id > epseelon-repository </ id >
< url > http://m2repo.epseelon.org/ </ url >
< releases >
< enabled > true </ enabled >
</ releases >
< snapshots >
< enabled > true </ enabled >
</ snapshots >
</ repository >
</ repositories >
< pluginRepositories >
< pluginRepository >
< id > flex-mojos-repository </ id >
< url > http://repository.sonatype.org/content/groups/flexgroup </ url >
< releases >
< enabled > true </ enabled >
</ releases >
< snapshots >
< enabled > true </ enabled >
</ snapshots >
</ pluginRepository >
< pluginRepository >
< id > epseelon-repository </ id >
< url > http://m2repo.epseelon.org/ </ url >
< releases >
< enabled > true </ enabled >
</ releases >
< snapshots >
< enabled > true </ enabled >
</ snapshots >
</ pluginRepository >
</ pluginRepositories >
< build >
< pluginManagement >
< plugins >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-dependency-plugin </ artifactId >
< version > 2.0 </ version >
</ plugin >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-assembly-plugin </ artifactId >
< version > 2.2-beta-2 </ version >
</ plugin >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-eclipse-plugin </ artifactId >
< version > 2.8 </ version >
< configuration >
< sourceExcludes >
< sourceExclude > **/.svn/ </ sourceExclude >
</ sourceExcludes >
< downloadSources > true </ downloadSources >
</ configuration >
</ plugin >
</ plugins >
</ pluginManagement >
</ build >
二.创建flex项目模块
1.打开cmd定位到kay目录,运行如下命令
mvn archetype:generate -DarchetypeRepository=http://repository.sonatype.com/content/groups/flexgroup -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-application -DarchetypeVersion=4.0-SNAPSHOT -DgroupId=org.adaikiss.kay -DartifactId=flex -Dpackagename=org.adaikiss.kay2.修改pom.xml,删除junit依赖,并修改plugin节点为以下内容
< plugin >
< groupId > org.sonatype.flexmojos </ groupId >
< artifactId > flexmojos-maven-plugin </ artifactId >
< version > 4.0-SNAPSHOT </ version >
< extensions > true </ extensions >
< configuration >
<!-- put your configuration options here -->
< debug > true </ debug >
< allowSourcePathOverlap > true </ allowSourcePathOverlap >
</ configuration >
</ plugin >
三.创建java web项目模块
1.打开cmd定位到kay目录,运行以下命令
mvn archetype:generate -DgroupId=org.adaikiss.kay -DartifactId=web -Dpackagename=org.adaikiss.kay -DarchetypeArtifactId=maven-archetype-webapp
2.修改pom.xml,添加以下内容到build节点,以指定java编译器版本
< plugins >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-compiler-plugin </ artifactId >
< configuration >
< source > 1.6 </ source >
< target > 1.6 </ target >
</ configuration >
</ plugin >
</ plugins >
< resources >
< resource >
< directory > src/main/resources </ directory >
</ resource >
< resource >
< directory > src/main/java </ directory >
< excludes >
< exclude > **/*.java </ exclude >
</ excludes >
< includes >
< include > **/*.xml </ include >
</ includes >
</ resource >
</ resources >
四.创建用于共享配置文件的模块
1.打开cmd定位到kay目录,运行以下命令
mvn archetype:generate -DgroupId=org.adaikiss.kay -DartifactId=config
2.进入config目录,删除其中src/main/java和src/test.然后创建目录src/main/resources,将blazeds.war中的WEB-INF\flex\目录里的以下5个文件复制到resources目录
messaging-config.xml
proxy-config.xml
remoting-config.xml
services-config.xml
version.properties
3.修改pom.xml,删除junit依赖,添加以下内容
< packaging > pom </ packaging >
< build >
< plugins >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-assembly-plugin </ artifactId >
< executions >
< execution >
< id > make shared resources </ id >
< goals >
< goal > single </ goal >
</ goals >
< phase > package </ phase >
< configuration >
< descriptors >
< descriptor > src/main/assembly/resources.xml </ descriptor >
</ descriptors >
</ configuration >
</ execution >
</ executions >
</ plugin >
</ plugins >
</ build >
< assembly >
< id > resources </ id >
< formats >
< format > zip </ format >
</ formats >
< includeBaseDirectory > false </ includeBaseDirectory >
< fileSets >
< fileSet >
< directory > src/main/resources </ directory >
< outputDirectory ></ outputDirectory >
</ fileSet >
</ fileSets >
</ assembly >
五.设置各模块间的依赖
1.将config作为web模块依赖项包含到web中,在web/pom.xml中的dependencies节点添加以下代码
< dependency >
< groupId > ${project.groupId} </ groupId >
< artifactId > config </ artifactId >
< version > ${project.version} </ version >
< classifier > resources </ classifier >
< type > zip </ type >
< scope > provided </ scope >
</ dependency >
2.在build节点添加以下内容
< plugin >
< artifactId > maven-dependency-plugin </ artifactId >
< executions >
< execution >
< id > unpack-config </ id >
< goals >
< goal > unpack-dependencies </ goal >
</ goals >
< phase > generate-resources </ phase >
< configuration >
< outputDirectory > ${project.build.directory}/${project.build.finalName}/WEB-INF/flex </ outputDirectory >
< includeArtifacIds > config </ includeArtifacIds >
< includeGroupIds > ${project.groupId} </ includeGroupIds >
< includeClassifiers > resources </ includeClassifiers >
< excludeTransitive > true </ excludeTransitive >
< excludeTypes > jar,swf </ excludeTypes >
</ configuration >
</ execution >
</ executions >
</ plugin >
< dependency >
< groupId > ${project.groupId} </ groupId >
< artifactId > config </ artifactId >
< version > ${project.version} </ version >
< classifier > resources </ classifier >
< type > zip </ type >
< scope > provided </ scope >
</ dependency >
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-dependency-plugin </ artifactId >
< executions >
< execution >
< id > unpack-config </ id >
< goals >
< goal > unpack-dependencies </ goal >
</ goals >
< phase > generate-resources </ phase >
< configuration >
< outputDirectory > ${project.build.directory}/generated-resources </ outputDirectory >
< includeArtifacIds > config </ includeArtifacIds >
< includeGroupIds > ${project.groupId} </ includeGroupIds >
< excludeTransitive > true </ excludeTransitive >
</ configuration >
</ execution >
</ executions >
</ plugin >
< resources >
< resource >
< directory > ${basedir}/src/main/resources </ directory >
</ resource >
< resource >
< directory > ${basedir}/target/generated-resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
< dependency >
< groupId > ${project.groupId} </ groupId >
< artifactId > flex </ artifactId >
< version > ${project.version} </ version >
< type > swf </ type >
</ dependency >
< execution >
< id > copy-swf </ id >
< phase > process-classes </ phase >
< goals >
< goal > copy-dependencies </ goal >
</ goals >
< configuration >
< outputDirectory > ${project.build.directory}/${project.build.finalName}/swf </ outputDirectory >
< includeTypes > swf </ includeTypes >
</ configuration >
</ execution >
六.给web模块添加spring/struts2/hibernate/jetty支持,参考springside
1.在kay/pom.xml中添加以下节点,预定义一些依赖的版本
< properties >
< project.build.sourceEncoding > UTF-8 </ project.build.sourceEncoding >
< spring.version > 3.0.3.RELEASE </ spring.version >
< hibernate.version > 3.3.2.GA </ hibernate.version >
< struts2.version > 2.1.8.1 </ struts2.version >
< h2.version > 1.2.139 </ h2.version >
< quartz.version > 1.8.3 </ quartz.version >
< slf4j.version > 1.6.1 </ slf4j.version >
< cxf.version > 2.2.9 </ cxf.version >
< jersey.version > 1.3 </ jersey.version >
< spring-security.version > 3.0.3.RELEASE </ spring-security.version >
< activemq.version > 5.3.2 </ activemq.version >
< jetty.version > 6.1.24 </ jetty.version >
< h2.version > 1.2.139 </ h2.version >
< quartz.version > 1.8.3 </ quartz.version >
< jackson.version > 1.5.4 </ jackson.version >
< slf4j.version > 1.6.1 </ slf4j.version >
< selenium.version > 2.0a4 </ selenium.version >
</ properties >
2.在repositories节点中添加以下仓库
< repository >
< id > jboss </ id >
< name > Jboss Repository </ name >
< url > http://repository.jboss.com/maven2 </ url >
< snapshots >
< enabled > false </ enabled >
</ snapshots >
</ repository >
< repository >
< id > java.net </ id >
< name > Java.net Repository </ name >
< url > http://download.java.net/maven/2/ </ url >
< snapshots >
< enabled > false </ enabled >
</ snapshots >
</ repository >
< repository >
< id > spy </ id >
< name > Spy Repository </ name >
< url > http://bleu.west.spy.net/~dustin/m2repo/ </ url >
< snapshots >
< enabled > false </ enabled >
</ snapshots >
</ repository >
< repository >
< id > jmemcached </ id >
< name > JMemcached Repository </ name >
< url > http://thimbleware.com/maven </ url >
< snapshots >
< enabled > false </ enabled >
</ snapshots >
</ repository >
3.在根节点添加以下依赖
< dependencyManagement >
< dependencies >
<!-- spring begin -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-core </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-beans </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-context </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
<!-- spring aop -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-aop </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
< dependency >
< groupId > org.aspectj </ groupId >
< artifactId > aspectjweaver </ artifactId >
< version > 1.6.9 </ version >
</ dependency >
< dependency >
< groupId > cglib </ groupId >
< artifactId > cglib-nodep </ artifactId >
< version > 2.2 </ version >
</ dependency >
<!-- spring end -->
<!-- database access begin -->
<!-- hibernate -->
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-core </ artifactId >
< version > ${hibernate.version} </ version >
</ dependency >
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-annotations </ artifactId >
< version > 3.4.0.GA </ version >
</ dependency >
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-ehcache </ artifactId >
< version > ${hibernate.version} </ version >
</ dependency >
<!-- newest version in jboss repository -->
< dependency >
< groupId > javassist </ groupId >
< artifactId > javassist </ artifactId >
< version > 3.11.0.GA </ version >
</ dependency >
<!-- spring orm -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-orm </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
<!-- optional datasource -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-jdbc </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
< dependency >
< groupId > commons-dbcp </ groupId >
< artifactId > commons-dbcp </ artifactId >
< version > 1.4 </ version >
</ dependency >
<!-- database access end -->
<!-- web begin -->
<!-- struts2 -->
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-core </ artifactId >
< version > ${struts2.version} </ version >
< exclusions >
< exclusion >
< groupId > com.sun </ groupId >
< artifactId > tools </ artifactId >
</ exclusion >
</ exclusions >
</ dependency >
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-spring-plugin </ artifactId >
< version > ${struts2.version} </ version >
</ dependency >
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-convention-plugin </ artifactId >
< version > ${struts2.version} </ version >
</ dependency >
< dependency >
< groupId > org.freemarker </ groupId >
< artifactId > freemarker </ artifactId >
< version > 2.3.16 </ version >
</ dependency >
<!-- spring web -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-web </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-webmvc </ artifactId >
< version > ${spring.version} </ version >
</ dependency >
<!-- json -->
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-core-asl </ artifactId >
< version > ${jackson.version} </ version >
</ dependency >
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-mapper-asl </ artifactId >
< version > ${jackson.version} </ version >
</ dependency >
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-jaxrs </ artifactId >
< version > ${jackson.version} </ version >
</ dependency >
<!-- j2ee web spec -->
< dependency >
< groupId > javax.servlet </ groupId >
< artifactId > servlet-api </ artifactId >
< version > 2.5 </ version >
< scope > provided </ scope >
</ dependency >
< dependency >
< groupId > javax.servlet </ groupId >
< artifactId > jstl </ artifactId >
< version > 1.1.2 </ version >
</ dependency >
< dependency >
< groupId > taglibs </ groupId >
< artifactId > standard </ artifactId >
< version > 1.1.2 </ version >
</ dependency >
<!-- web end -->
<!-- security begin -->
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-core </ artifactId >
< version > ${spring-security.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-config </ artifactId >
< version > ${spring-security.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-web </ artifactId >
< version > ${spring-security.version} </ version >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-taglibs </ artifactId >
< version > ${spring-security.version} </ version >
</ dependency >
< dependency >
< groupId > com.octo.captcha </ groupId >
< artifactId > jcaptcha </ artifactId >
< version > 1.0 </ version >
</ dependency >
<!-- security end -->
<!-- quartz -->
< dependency >
< groupId > org.quartz-scheduler </ groupId >
< artifactId > quartz </ artifactId >
< version > ${quartz.version} </ version >
</ dependency >
<!-- logging begin -->
<!-- slf4j -->
< dependency >
< groupId > org.slf4j </ groupId >
< artifactId > slf4j-api </ artifactId >
< version > ${slf4j.version} </ version >
</ dependency >
<!-- slf4j-log4j绑定 -->
< dependency >
< groupId > org.slf4j </ groupId >
< artifactId > slf4j-log4j12 </ artifactId >
< version > ${slf4j.version} </ version >
</ dependency >
<!-- slf4j没有log4j的情形 -->
< dependency >
< groupId > commons-logging </ groupId >
< artifactId > commons-logging </ artifactId >
< version > 1.1.1 </ version >
</ dependency >
< dependency >
< groupId > log4j </ groupId >
< artifactId > log4j </ artifactId >
< version > 1.2.16 </ version >
< exclusions >
< exclusion >
< groupId > javax.mail </ groupId >
< artifactId > mail </ artifactId >
</ exclusion >
< exclusion >
< groupId > javax.jms </ groupId >
< artifactId > jms </ artifactId >
</ exclusion >
< exclusion >
< groupId > com.sun.jdmk </ groupId >
< artifactId > jmxtools </ artifactId >
</ exclusion >
< exclusion >
< groupId > com.sun.jmx </ groupId >
< artifactId > jmxri </ artifactId >
</ exclusion >
< exclusion >
< groupId > oro </ groupId >
< artifactId > oro </ artifactId >
</ exclusion >
</ exclusions >
</ dependency >
<!-- logging end -->
<!-- xml begin -->
< dependency >
< groupId > com.sun.xml.bind </ groupId >
< artifactId > jaxb-impl </ artifactId >
< version > 2.2.1 </ version >
</ dependency >
< dependency >
< groupId > dom4j </ groupId >
< artifactId > dom4j </ artifactId >
< version > 1.6.1 </ version >
</ dependency >
< dependency >
< groupId > jaxen </ groupId >
< artifactId > jaxen </ artifactId >
< version > 1.1.1 </ version >
</ dependency >
< dependency >
< groupId > xerces </ groupId >
< artifactId > xercesImpl </ artifactId >
< version > 2.9.1 </ version >
</ dependency >
<!-- xml end -->
<!-- utils begin -->
< dependency >
< groupId > commons-beanutils </ groupId >
< artifactId > commons-beanutils </ artifactId >
< version > 1.8.3 </ version >
</ dependency >
< dependency >
< groupId > commons-lang </ groupId >
< artifactId > commons-lang </ artifactId >
< version > 2.5 </ version >
</ dependency >
< dependency >
< groupId > commons-collections </ groupId >
< artifactId > commons-collections </ artifactId >
< version > 3.2.1 </ version >
</ dependency >
< dependency >
< groupId > commons-codec </ groupId >
< artifactId > commons-codec </ artifactId >
< version > 1.4 </ version >
</ dependency >
< dependency >
< groupId > commons-io </ groupId >
< artifactId > commons-io </ artifactId >
< version > 1.4 </ version >
</ dependency >
< dependency >
< groupId > com.google.collections </ groupId >
< artifactId > google-collections </ artifactId >
< version > 1.0 </ version >
</ dependency >
< dependency >
< groupId > org.apache.httpcomponents </ groupId >
< artifactId > httpclient </ artifactId >
< version > 4.0.1 </ version >
</ dependency >
< dependency >
< groupId > ognl </ groupId >
< artifactId > ognl </ artifactId >
< version > 2.7.3 </ version >
< exclusions >
<!-- use javassist.javassist instead -->
< exclusion >
< groupId > jboss </ groupId >
< artifactId > javassist </ artifactId >
</ exclusion >
</ exclusions >
</ dependency >
<!-- template engine -->
< dependency >
< groupId > org.apache.velocity </ groupId >
< artifactId > velocity </ artifactId >
< version > 1.6.4 </ version >
</ dependency >
<!-- cache (usually for orm) -->
< dependency >
< groupId > net.sf.ehcache </ groupId >
< artifactId > ehcache </ artifactId >
< version > 1.6.2 </ version >
</ dependency >
< dependency >
< groupId > asm </ groupId >
< artifactId > asm </ artifactId >
< version > 3.2 </ version >
</ dependency >
<!-- utils end -->
<!-- test begin -->
< dependency >
< groupId > junit </ groupId >
< artifactId > junit </ artifactId >
< version > 4.8.1 </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.easymock </ groupId >
< artifactId > easymock </ artifactId >
< version > 3.0 </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-test </ artifactId >
< version > ${spring.version} </ version >
< scope > test </ scope >
</ dependency >
<!-- jetty -->
< dependency >
< groupId > org.mortbay.jetty </ groupId >
< artifactId > jetty </ artifactId >
< version > ${jetty.version} </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.mortbay.jetty </ groupId >
< artifactId > jsp-2.1-jetty </ artifactId >
< version > ${jetty.version} </ version >
< scope > test </ scope >
</ dependency >
<!-- selenium 2.0 -->
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-htmlunit-driver </ artifactId >
< version > ${selenium.version} </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-firefox-driver </ artifactId >
< version > ${selenium.version} </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-ie-driver </ artifactId >
< version > ${selenium.version} </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-remote-client </ artifactId >
< version > ${selenium.version} </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > org.dbunit </ groupId >
< artifactId > dbunit </ artifactId >
< version > 2.4.7 </ version >
< scope > test </ scope >
</ dependency >
< dependency >
< groupId > com.h2database </ groupId >
< artifactId > h2 </ artifactId >
< version > ${h2.version} </ version >
< scope > test </ scope >
</ dependency >
<!-- test end -->
<!-- hibernate tools -->
<!-- newest version in jboss repository -->
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-tools </ artifactId >
< version > 3.2.3.GA </ version >
< scope > provided </ scope >
< exclusions >
< exclusion >
< groupId > freemarker </ groupId >
< artifactId > freemarker </ artifactId >
</ exclusion >
</ exclusions >
</ dependency >
<!-- javascript/css compress tools -->
< dependency >
< groupId > com.yahoo.platform.yui </ groupId >
< artifactId > yuicompressor </ artifactId >
< version > 2.4.2 </ version >
< scope > provided </ scope >
</ dependency >
< dependency >
< groupId > ant </ groupId >
< artifactId > ant </ artifactId >
< version > 1.7.0 </ version >
< scope > provided </ scope >
</ dependency >
</ dependencies >
</ dependencyManagement >
<!-- spring begin -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-core </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-beans </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-context </ artifactId >
</ dependency >
<!-- spring aop -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-aop </ artifactId >
</ dependency >
< dependency >
< groupId > org.aspectj </ groupId >
< artifactId > aspectjweaver </ artifactId >
</ dependency >
< dependency >
< groupId > cglib </ groupId >
< artifactId > cglib-nodep </ artifactId >
</ dependency >
<!-- spring end -->
<!-- database access begin -->
<!-- hibernate -->
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-core </ artifactId >
</ dependency >
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-annotations </ artifactId >
</ dependency >
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-ehcache </ artifactId >
</ dependency >
<!-- newest version in jboss repository -->
< dependency >
< groupId > javassist </ groupId >
< artifactId > javassist </ artifactId >
</ dependency >
<!-- spring orm -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-orm </ artifactId >
</ dependency >
<!-- optional datasource -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-jdbc </ artifactId >
</ dependency >
< dependency >
< groupId > commons-dbcp </ groupId >
< artifactId > commons-dbcp </ artifactId >
</ dependency >
<!-- database access end -->
<!-- web begin -->
<!-- struts2 -->
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-core </ artifactId >
</ dependency >
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-spring-plugin </ artifactId >
</ dependency >
< dependency >
< groupId > org.apache.struts </ groupId >
< artifactId > struts2-convention-plugin </ artifactId >
</ dependency >
< dependency >
< groupId > org.freemarker </ groupId >
< artifactId > freemarker </ artifactId >
</ dependency >
<!-- spring web -->
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-web </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-webmvc </ artifactId >
</ dependency >
<!-- json -->
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-core-asl </ artifactId >
</ dependency >
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-mapper-asl </ artifactId >
</ dependency >
< dependency >
< groupId > org.codehaus.jackson </ groupId >
< artifactId > jackson-jaxrs </ artifactId >
</ dependency >
<!-- j2ee web spec -->
< dependency >
< groupId > javax.servlet </ groupId >
< artifactId > servlet-api </ artifactId >
< scope > provided </ scope >
</ dependency >
< dependency >
< groupId > javax.servlet </ groupId >
< artifactId > jstl </ artifactId >
</ dependency >
< dependency >
< groupId > taglibs </ groupId >
< artifactId > standard </ artifactId >
</ dependency >
<!-- web end -->
<!-- security begin -->
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-core </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-config </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-web </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework.security </ groupId >
< artifactId > spring-security-taglibs </ artifactId >
</ dependency >
< dependency >
< groupId > com.octo.captcha </ groupId >
< artifactId > jcaptcha </ artifactId >
</ dependency >
<!-- security end -->
<!-- quartz -->
< dependency >
< groupId > org.quartz-scheduler </ groupId >
< artifactId > quartz </ artifactId >
</ dependency >
<!-- logging begin -->
<!-- slf4j -->
< dependency >
< groupId > org.slf4j </ groupId >
< artifactId > slf4j-api </ artifactId >
</ dependency >
<!-- slf4j-log4j绑定 -->
< dependency >
< groupId > org.slf4j </ groupId >
< artifactId > slf4j-log4j12 </ artifactId >
</ dependency >
<!-- slf4j没有log4j的情形 -->
< dependency >
< groupId > commons-logging </ groupId >
< artifactId > commons-logging </ artifactId >
</ dependency >
< dependency >
< groupId > log4j </ groupId >
< artifactId > log4j </ artifactId >
</ dependency >
<!-- logging end -->
<!-- xml begin -->
< dependency >
< groupId > com.sun.xml.bind </ groupId >
< artifactId > jaxb-impl </ artifactId >
</ dependency >
< dependency >
< groupId > dom4j </ groupId >
< artifactId > dom4j </ artifactId >
</ dependency >
< dependency >
< groupId > jaxen </ groupId >
< artifactId > jaxen </ artifactId >
</ dependency >
< dependency >
< groupId > xerces </ groupId >
< artifactId > xercesImpl </ artifactId >
</ dependency >
<!-- xml end -->
<!-- utils begin -->
< dependency >
< groupId > commons-beanutils </ groupId >
< artifactId > commons-beanutils </ artifactId >
</ dependency >
< dependency >
< groupId > commons-lang </ groupId >
< artifactId > commons-lang </ artifactId >
</ dependency >
< dependency >
< groupId > commons-collections </ groupId >
< artifactId > commons-collections </ artifactId >
</ dependency >
< dependency >
< groupId > commons-codec </ groupId >
< artifactId > commons-codec </ artifactId >
</ dependency >
< dependency >
< groupId > commons-io </ groupId >
< artifactId > commons-io </ artifactId >
</ dependency >
< dependency >
< groupId > com.google.collections </ groupId >
< artifactId > google-collections </ artifactId >
</ dependency >
< dependency >
< groupId > org.apache.httpcomponents </ groupId >
< artifactId > httpclient </ artifactId >
</ dependency >
< dependency >
< groupId > ognl </ groupId >
< artifactId > ognl </ artifactId >
</ dependency >
<!-- template engine -->
< dependency >
< groupId > org.apache.velocity </ groupId >
< artifactId > velocity </ artifactId >
</ dependency >
<!-- cache (usually for orm) -->
< dependency >
< groupId > net.sf.ehcache </ groupId >
< artifactId > ehcache </ artifactId >
</ dependency >
< dependency >
< groupId > asm </ groupId >
< artifactId > asm </ artifactId >
</ dependency >
<!-- utils end -->
<!-- test begin -->
< dependency >
< groupId > junit </ groupId >
< artifactId > junit </ artifactId >
</ dependency >
< dependency >
< groupId > org.easymock </ groupId >
< artifactId > easymock </ artifactId >
</ dependency >
< dependency >
< groupId > org.springframework </ groupId >
< artifactId > spring-test </ artifactId >
</ dependency >
<!-- jetty -->
< dependency >
< groupId > org.mortbay.jetty </ groupId >
< artifactId > jetty </ artifactId >
</ dependency >
< dependency >
< groupId > org.mortbay.jetty </ groupId >
< artifactId > jsp-2.1-jetty </ artifactId >
</ dependency >
<!-- selenium 2.0 -->
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-htmlunit-driver </ artifactId >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-firefox-driver </ artifactId >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-ie-driver </ artifactId >
</ dependency >
< dependency >
< groupId > org.seleniumhq.selenium </ groupId >
< artifactId > selenium-remote-client </ artifactId >
</ dependency >
< dependency >
< groupId > org.dbunit </ groupId >
< artifactId > dbunit </ artifactId >
</ dependency >
< dependency >
< groupId > com.h2database </ groupId >
< artifactId > h2 </ artifactId >
</ dependency >
<!-- test end -->
<!-- hibernate tools -->
<!-- newest version in jboss repository -->
< dependency >
< groupId > org.hibernate </ groupId >
< artifactId > hibernate-tools </ artifactId >
</ dependency >
<!-- javascript/css compress tools -->
< dependency >
< groupId > com.yahoo.platform.yui </ groupId >
< artifactId > yuicompressor </ artifactId >
</ dependency >
<!-- eclipse插件 -->
< plugin >
< groupId > org.apache.maven.plugins </ groupId >
< artifactId > maven-eclipse-plugin </ artifactId >
< configuration >
< wtpversion > 2.0 </ wtpversion >
< additionalProjectnatures >
< projectnature > org.springframework.ide.eclipse.core.springnature </ projectnature >
< projectnature > org.maven.ide.eclipse.maven2Nature </ projectnature >
< projectnature > org.eclipse.jdt.core.javanature </ projectnature >
</ additionalProjectnatures >
</ configuration >
</ plugin >
< plugin >
< groupId > org.mortbay.jetty </ groupId >
< artifactId > maven-jetty-plugin </ artifactId >
< configuration >
< scanIntervalSeconds > 10 </ scanIntervalSeconds >
< stopKey > foo </ stopKey >
< stopPort > 9999 </ stopPort >
< webAppConfig >
< contextPath > /kay </ contextPath >
< tempDirectory > ${project.build.directory}/work </ tempDirectory >
</ webAppConfig >
< connectors >
< connector implementation ="org.mortbay.jetty.nio.SelectChannelConnector" >
< port > 80 </ port >
< maxIdleTime > 60000 </ maxIdleTime >
</ connector >
<!--
<connector
implementation="org.mortbay.jetty.ssl.SslSelectChannelConnector">
<port>8443</port> <maxIdleTime>60000</maxIdleTime> <keystore>
${basedir}/src/test/jetty/server.keystore </keystore>
<keyPassword>123456</keyPassword> </connector>
-->
</ connectors >
</ configuration >
< executions >
< execution >
< id > start-jetty </ id >
< phase > pre-integration-test </ phase >
< goals >
< goal > run </ goal >
</ goals >
< configuration >
< scanIntervalSeconds > 0 </ scanIntervalSeconds >
< daemon > true </ daemon >
</ configuration >
</ execution >
< execution >
< id > stop-jetty </ id >
< phase > post-integration-test </ phase >
< goals >
< goal > stop </ goal >
</ goals >
</ execution >
</ executions >
</ plugin >
7.未完待续。。。。。。