1.生成struts项目
- F:/maven/test_project/>mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http: //static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=com.mycompany.app -DartifactId=myproject
2.编译成eclipse项目
- >cd myproject
- >mvn eclipse:eclipse
导入eclipse,配置构建路径,去除所有M2_REPO中的类路径变量jar包,找到pom.xml右键 >Maven>Enable Dependency Management
运行为Maven test提示成功,或者新建一个M2_REPO路径变量:Window -> Preferences -> Java -> Build Path -> Classpath Variables, New
Name 命名为 M2_REPO ,路径为你的本地的 maven 类库地址,这里为 C:/Documents and Settings/jeffrey/.m2/repository ,设置成功后重新编译
3.pom.xml
- <amp.genericCore> false </amp.genericCore>(原为 true )
- <amp.fullSource> true </amp.fullSource>(原为 false )
找到<!-- Database settings -->修改数据库的用户名密码
- a>mvn appfuse:full-source
- b>mvn appfuse:gen-model
- c>mvn appfuse:gen -Dentity=你的MODEL类
- d>mvn appfuse:install
- e>mvn jetty:run-war
如果新生成一张表的数据则从b开始重新执行一次
如果执行到d测试报错的时候,检查一下test/resource/hibernate.cfg.xml中是不是少了刚添加的Model类的mapping
重新执行新代码生成时注意会删除数据库中的表和数据
- <componentProperties>
- <drop> false </drop>(原为 true )
- <jdk5> true </jdk5>
- <propertyfile>target/classes/jdbc.properties</propertyfile>
- <skip>${maven.test.skip}</skip>
- </componentProperties>
执行“mvn jetty:run-war”时,会清空数据表的数据并插入默认的数据,默认的数据在%PROJECT_HOME%/src/main/resources/default-data.xml配置,这个很讨厌。修改pom.xml可以屏蔽这部分操作。
常用命令:
创建 Maven 项目: mvn archetype:create
编译源代码: mvn compile
编译测试代码: mvn test-compile
运行测试: mvn test
产生 站点和报告 : mvn site
打包: mvn package
在本地 Repository 中安装 jar,构建打包 : mvn install
清除产生的项目: mvn clean
Help插件: mvn help:describe -Dplugin=help -Dfull
在不载入依赖情况下运行java类: mvn exec:java -Dexec.mainClass=*.Main
浏览项目依赖: mvn dependency:resolve 或者: mvn dependency:tree
综合测试并打包发布: mvn integration-test
生成项目appfuse源码: mvn appfuse:full-source
将项目转换成eclipse项目并从远程下载jar包到本地目录: mvn eclipse:eclipse -DdownloadSources= true
在集成测试可以运行的环境中处理和发布包: mvn integration-test
在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享: mvn deploy
运行任何检查,验证包是否有效且达到质量标准: mvn verify
-
- mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
其中path-to-eclipse-workspace是本机的eclipse的worksapce的路径。执行后maven会在eclipse中建立一个M2_REPO环境变量,并将其中所有的jar包引入到工程中,完全自动化,十分方便。
groupId,artifactId和version 这个三组合标示依赖的具体工程,而且这个依赖工程必须是maven中心包管理范围内的。如果碰上非开源包,maven支持不了这个包,那么则有三种方法处理:1.本地安装这个插件install plugin例如:
mvn install:install-file -Dfile=non-maven-proj.jar -DgroupId=some.group
-DartifactId=non-maven-proj -Dversion=1
war插件有三种打包方式:
第一种是war,复制所需文件到target目录,然后压缩war包。
第二种是war:exploded,复制所需文件到target目录。像Tomcat这种支持以目录部署的项目,每次压缩一次war包太慢了,可采用这种方式。
第三种是war:inplace,直接在webapp目录中复制所需的文件,如lib库,classes文件等。
如
- mvn test war:exploded tomcat:exploded 以目录方式部署
- mvn tomcat:deploy 以war方式部署
- mvn jetty:run war:exploded
-
参考
江南白衣
http://wiki.springside.org.cn/display/calvin/Maven
使用tomcat发布:http://mojo.codehaus.org/tomcat-maven-plugin/introduction.html
http://www.javaeye.com/topic/230265 #
私服:http://blog.csdn.net/bibitoo712/archive/2008/01/09/2032119.aspx
http://kidsmopi.javaeye.com/blog/232554
http://jeffchon.spaces.live.com/blog/cns!7F4E136BF893B025!420.entry
http://appfuse.org/display/APF/AppFuse+QuickStart
http://www.javaeye.com/topic/98480
http://hi.baidu.com/qiaobincs/blog/item/0c7cc7116d0eb578ca80c4d7.html
http://hi.baidu.com/zhang20084/blog/item/6ddf29385c159f27b9998f64.html
服务配置:http://www.yeeyan.com/articles/view/jdonee/19631