在阅读的过程中有任何问题,欢迎一起交流
QQ:1494713801
1、从svn中检出项目
svn co svn地址及项目目录(如:svn co http://172.18.59.101/svn/svnroot/project/testpro)
2、使用mvn下载项目依赖的包并打包项目(在pom.xml同级目录下输入命令)
mvn install ——在本地Repository中安装jar
mvn install:install-file -Dfile="lib/server-1.1.jar" -DgroupId="org.server" -DartifactId="server" -Dversion="1.1" -Dpackaging=jar ——发布第三方Jar到本地库中
mvn -e -X clean compile ——删除target目录下编译内容然后编译项目
mvn package ——打包
3、启动运行项目
附录:
一、mvn常用命令
1. 创建Maven的普通java项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2. 创建Maven的Web项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp
3. 编译源代码: mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 产生site(生成项目相关信息的网站):mvn site
7. 打包(生成target目录,编译、测试代码,生成测试报告,生成jar/war文件):mvn package
8. 在本地Repository中安装jar:mvn install
9. 清除产生的项目(删除target目录下编译内容):mvn clean
10. 生成eclipse项目:mvn eclipse:eclipse
11. 生成idea项目:mvn idea:idea
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
13. 编译测试的内容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
16. 清除eclipse的一些系统设置:mvn eclipse:clean
17. 显示版本信息:mvn -version/-v
18. 生成Wtp插件的Web项目:mvn -Dwtpversion=1.0 eclipse:eclipse
19. 清除Eclipse项目的配置信息(Web项目):mvn -Dwtpversion=1.0 eclipse:clean
20. 发布第三方Jar到本地库中:mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar
21. 显示详细错误信息:mvn -e
22. 验证工程是否正确,所有需要的资源是否可用:mvn validate
23. 编译项目测试代码:mvn test-compile
24. 在集成测试可以运行的环境中处理和发布包:mvn integration-test
25. 运行任何检查,验证包是否有效且达到质量标准:mvn verify
26. 产生应用需要的任何额外的源代码,如xdoclet:mvn generate-sources
27. Exec 插件让我们能够在不往classpath 载入适当的依赖的情况下,运行这个程序:mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main
28. 打印出已解决依赖的列表:mvn dependency:resolve
29. 打印整个依赖树:mvn dependency:tree
30. 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行:mvn install -X
31. 构建装配Maven Assembly插件是一个用来创建你应用程序特有分发包的插件:mvn install assembly:assembly
32. 使用Hibernate3 插件构造数据库:mvn hibernate3:hbm2ddl
33. 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息:mvn help:describe -Dplugin=help
34. 使用Help 插件输出完整的带有参数的目标列:mvn help:describe -Dplugin=help -Dfull
35. 获取单个目标的信息,设置 mojo 参数和 plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息:mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
36. 列出所有 Maven Exec 插件可用的目标:mvn help:describe -Dplugin=exec -Dfull
37. 看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置:mvn help:effective-pom
ps:
一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。
在应用程序用使用多个存储库
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/
二、svn冲突解决
第一种,利用update的选项进行冲突解决,也就是说不管当前拷贝副本是否是最新版本,都使用—accept参数作为冲突处理方式
–accept ARG : specify automatic conflict resolution action
(‘postpone’, ‘base’, ‘mine-conflict’,‘theirs-conflict’, ‘mine-full’, ‘theirs-full’,‘edit’, ‘launch’)
(p) postpone – mark the conflict to be resolved later //让文件在更新完成之后保持冲突状态。
(df) diff-full – show all changes made to merged file //使用标准区别格式显示base修订版本和冲突文件本身的区别。
(e) edit – change merged file in an editor //用你喜欢的编辑器打开冲突的文件,编辑器是环境变量EDITOR设置的。
(r) resolved – accept merged version of file //完成文件编辑之后,通知svn你已经解决了文件的冲突,它必须接受当前的内容—从本质上讲就是你已经“解决了”冲突。
(mf) mine-full – accept my version of entire file (ignore their change//丢弃新从服务器接收的变更,并只使用你查看文件的本地修改。
(tf) theirs-full – accept their version of entire file (lose my changes)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。
(l) launch – launch external tool to resolve conflict//启动一个外置程序来执行冲突解决,这需要一些预先的准备。
(h) help – show this list //显示所有在冲突解决时可能使用的命令。
第二种,在update时并不处理冲突,利用svn resolve解决冲突
1、利用svn resolve –accept base选择base版本,即1.txt.rOld作为最后提交的版本
–accept ARG : specify automatic conflict resolution source
(‘base’, ‘working’, ‘mine-conflict’,‘theirs-conflict’, ‘mine-full’, ‘theirs-full’)
2、手工修改1.txt文件,然后将当前拷贝即1.txt作为最后提交的版本
svn resolve –accept working 1.txt
3、svn resolve –accept theirs-full 1.txt 使用1.txt.rNew作为最后提交的版本
4、svn resolve –accept mine-full 1.txt 使用1.txt.mine作为最后提交的版本
5、svn resolve –accept mine-conflict 1.txt 使用1.txt.mine的冲突部分作为最后提交的版本
6、svn resolve –accept theirs-conflict 1.txt 使用1.txt.rNew的冲突部分作为最后提交的版本
第三种,使用svn revert取消变更
前两天在解决冲突时用到了svn resolve这个命令,找到这篇文章主要是因为他对–accept参数的说明比较全比官方的文档更详细。
来自: http://hi.baidu.com/ostech/blog/item/1c6ea627ca67af6b34a80f91.html
本文来自转载请标明出处:http://blog.csdn.net/lifxue/archive/2009/10/14/4662902.aspx