为什么80%的码农都做不了架构师?>>>
1.项目管理工具:
Maven的repository,说白了就是dependency的仓库,它按照一定的规则将dependency存放起来,以作缓存,如果本机的 repository找不到某个dependency,它就会自动去找到网上其它相关联的repository,找到的话将其下载至本地,那么下次它就不 再去其它地方下载了,直接从本地获取
Maven常用命令
mvn compile
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。
mvn test-compile
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
mvn test
运行应用程序中的单元测试
mvn site
生成项目相关信息的网站
mvn clean
清除目标目录中的生成结果
mvn package
依据项目生成 jar 文件,打包之前会进行编译,测试。
mvn install
在本地 Repository 中安装 jar。
mvn eclipse:eclipse
生成 Eclipse 项目文件及包引用定义,注意,需确保定义Classpath Variables: M2_REPO,指向本地maven类库目录。
Maven2,它是一个模块化项目构建工具(Building a Project )。它能够管理依赖、构建周期、测试、 打包并且在仓库中发布你的制品。它是一个项目构建工具,领先于通常的构建工具(实际上它的第一个版本是在Ant之上的一层)。
apache ivy2 对项目依赖的文件可以进行统一的管理,依赖于ant,它是一个管理(记录、跟踪、解析和报告)项目依赖的工具 (dependency tool)。
Maven 2和Ivy常被放在一起对比,但实际上两者是不同类型的工具。Ivy仅提供依赖管理功能,但是Maven 2是一个软件项目管理综合工具,能够管理构建、报告、文档,以及根据中心化的信息来管理依赖。Ant和Ivy 2.0集成在一起,与Maven 2进行比较才比较合适。
两个工具处理冲突管理(Conflict management)的方式是不同的,冲突管理指处理传递依赖时解决冲突的能力。Ivy允许由模块定制冲突管理器和规则,而Maven 2的冲突管理则基于最近的定义(也就是说,一个模块依赖于foo 1.0,这会导致模块的所有依赖都不能使用foo 1.1)。
Maven 2通过一个叫阶段(scope)的概念来处理其中的依赖配置。在Maven 2中,一个依赖只在定义它的测试阶段或构建阶段有效。Ivy能够创建多配置映射,这些映射可将每个配置(需构建工件的声明)与其它模块的依赖绑定在一起,以此提供了更多的定制选项。
Maven 2关于依赖管理的文档很有限,相对于此,Ivy的文档内容更宽泛,包含大量的例子和指南,同时包括FAQ。有些企业不能使用公共仓库,并在基于Ant的构建系统中有大量投资,对于这样的企业来说,Ivy支持企业仓库的创建、与Ant紧密集成,这些附加的特征都使Ivy成为能替代Maven 2的依赖管理工具。
mavn 常用命令
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. 打包:mvn package
8. 在本地Repository中安装jar:mvn install
(mvn install -D maven.test.skip=true 跳过TestCase检验,否则在install时会运行TestCase测试)
9. 清除产生的项目: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
ps:
一般使用情况是这样,首先通过cvs或svn下载代码到本机,
然后执行mvn eclipse:eclipse生成ecllipse项目文件,
然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,
也可以下载eclipse的maven插件。
===============================
其他:
mavn jar包来源:http://www.mvnrepository.com/
http://www.infoq.com/cn/minibooks/jee-webserver-cluster
pom中的属性文件:
<profiles>
<profile>
<id>191</id>
<properties>
<database.url>jdbc:oracle:thin:@192.168.0.191:1521:xe</database.url>
<database.driverClassName>oracle.jdbc.OracleDriver</database.driverClassName>
<database.username>jrtsch</database.username>
<database.password>jrt2010</database.password>
</properties>
</profile>
<profile>
<id>70debug</id>
<properties>
<database.url>jdbc:oracle:thin:@219.148.162.70:1537:jrtdbtest</database.url>
<database.driverClassName>oracle.jdbc.OracleDriver</database.driverClassName>
<database.username>jrtsch</database.username>
<database.password>jrt2010</database.password>
</properties>
</profile>
</profiles>
数据库配置文件:
database.password=${database.password}
database.url=${database.url}
database.username=${database.username}
database.driverClassName=${database.driverClassName}
==============================
建立一个maven web工程
mvn archetype:create -DgroupId=com.ex -DartifactId=myexample -DarchetypeArtifactId=maven-archetype-webapp
1.打包命令,如果将profile的属性值入:
mvn package -P191
2.打包 mvn package
3.打包跳过测试:mvn package -D mavne.test.skip=true
4.依赖包
使用maven命令:mvn dependency:sources 下载依赖包的源代码。
MAVEN手工添加第三方jar包(ojdbc14.jar)第三方jar包需要手工添加,命令如下:
mvn install:install-file -Dfile=E:\maven221\repository\com\oracle\ojdbc14\10.2.0.2.0
\ojdbc14-10.2.0.2.0.jar -DgroupId=com.org.common.oracle -DartifactId=oracle -
Dversion=10.2.0.2.0 -Dpackaging=jar -DgeneratePom=true
5.运行单个单元测试
mvn -Dtest=TestXXX test
建立项目的命令为
mvn archetype:generate -DarchetypeArtifactId=\[项目类型] -DgroupId=\[组识别]
-DartifactId=\[项目名称] -Dversion=\[版本] -Dpackage=\[包]
mvn archetype:generate -DgroupId=com.promotion -DartifactId=zefun_promotion -Dpackaging=jar -DarchetypeArtifactId=maven-archetype-webapp
项目类型(archetypeArtifactId)可以是下列选项
1. maven-archetype-j2ee-simple (J2EE 项目)
2. maven-archetype-portlet (门户)
3. maven-archetype-quickstart (一般 Java project)
4. maven-archetype-site (复杂站点)
5. maven-archetype-site-simple (简单站点)
6. maven-archetype-webapp (Java Web 站点)
groupId 用于项目的分组
artifactId 项目的名称,也就是包名称
version 版本
package 主要设定目录的层次
=============
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!-- exclude those which shared lib
<packagingExcludes>
WEB-INF/lib/nric-framework*.jar,
WEB-INF/lib/spring-core*.jar,
WEB-INF/lib/spring-asm*.jar,
WEB-INF/lib/commons-*.jar,
WEB-INF/lib/spring-aop*.jar,
WEB-INF/lib/aopalliance*.jar,
WEB-INF/lib/spring-beans*.jar,
WEB-INF/lib/spring-context*.jar,
WEB-INF/lib/spring-orm*.jar,
WEB-INF/lib/spring-tx*.jar,
WEB-INF/lib/ibatis*.jar,
WEB-INF/lib/oracle*.jar,
WEB-INF/lib/jcl-over-slf4j*.jar,
WEB-INF/lib/slf4j-*.jar,
WEB-INF/lib/javassist*.jar,
WEB-INF/lib/aspectjrt*.jar,
WEB-INF/lib/aspectjweaver*.jar,
WEB-INF/lib/spring-jdbc*.jar,
WEB-INF/lib/log4j*.jar,
WEB-INF/lib/quartz*.jar,
WEB-INF/lib/cglib*.jar,
WEB-INF/lib/asm-*.jar,
WEB-INF/lib/joda-time*.jar
</packagingExcludes>-->
<!-- Use this to include a selection of jars that will be included in the WAR -->
<!--
<packagingIncludes>
**/*.xml,**/*.properties,**/*.class,**/*.png,**/*.css,**/*.js,**/*.jsp,
WEB-INF/lib/spring-web*.jar
</packagingIncludes>
-->
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
Java代码
1. mvn pom.xml文件配置详解
2. http://maven.apache.org/ref/2.0.8/maven-model/maven.html
3.
4. mvn -version/-v 显示版本信息
5. mvn archetype:generate 创建mvn项目
6. mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 创建mvn项目
7.
8. mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
9. mvn jetty:run 运行项目于jetty上,
10. mvn compile 编译
11. mvn test 编译并测试
12. mvn clean 清空生成的文件
13. mvn site 生成项目相关信息的网站
14. mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web项目
15. mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse项目的配置信息(Web项目)
16. mvn eclipse:eclipse 将项目转化为Eclipse项目
17.
18. 在应用程序用使用多个存储库
19. <repositories>
20. <repository>
21. <id>Ibiblio</id>
22. <name>Ibiblio</name>
23. <url>http://www.ibiblio.org/maven/</url>
24. </repository>
25. <repository>
26. <id>PlanetMirror</id>
27. <name>Planet Mirror</name>
28. <url>http://public.planetmirror.com/pub/maven/</url>
29. </repository>
30. </repositories>
31.
32.
33. 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/
34.
35.
36. 发布第三方Jar到本地库中:
37.
38. mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar
39.
40.
41. -DdownloadSources=true
42.
43. -DdownloadJavadocs=true
44.
45. mvn -e 显示详细错误 信息.
46.
47. mvn validate 验证工程是否正确,所有需要的资源是否可用。
48. mvn test-compile 编译项目测试代码。 。
49. mvn integration-test 在集成测试可以运行的环境中处理和发布包。
50. mvn verify 运行任何检查,验证包是否有效且达到质量标准。
51. mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
另外
Java代码
1. Maven常用命令:
2. 1. 创建Maven的普通java项目:
3. mvn archetype:create
4. -DgroupId=packageName
5. -DartifactId=projectName
6. 2. 创建Maven的Web项目:
7. mvn archetype:create
8. -DgroupId=packageName
9. -DartifactId=webappName
10. -DarchetypeArtifactId=maven-archetype-webapp
11. 3. 编译源代码: mvn compile
12. 4. 编译测试代码:mvn test-compile
13. 5. 运行测试:mvn test
14. 6. 产生site:mvn site
15. 7. 打包:mvn package
16. 8. 在本地Repository中安装jar:mvn install
17. 9. 清除产生的项目:mvn clean
18. 10. 生成eclipse项目:mvn eclipse:eclipse
19. 11. 生成idea项目:mvn idea:idea
20. 12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
21. 13. 编译测试的内容:mvn test-compile
22. 14. 只打jar包: mvn jar:jar
23. 15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
24. ( -skipping 的灵活运用,当然也可以用于其他组合命令)
25. 16. 清除eclipse的一些系统设置:mvn eclipse:clean
26.
27. ps:
28.
29. 一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。
30.
31. mvn -version/-v 显示版本信息
32. mvn archetype:generate 创建mvn项目
33. mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 创建mvn项目
34.
35. mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
36. mvn jetty:run 运行项目于jetty上,
37. mvn compile 编译
38. mvn test 编译并测试
39. mvn clean 清空生成的文件
40. mvn site 生成项目相关信息的网站
41. mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web项目
42. mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse项目的配置信息(Web项目)
43. mvn eclipse:eclipse 将项目转化为Eclipse项目
44.
45. 在应用程序用使用多个存储库
46. <repositories>
47. <repository>
48. <id>Ibiblio</id>
49. <name>Ibiblio</name>
50. <url>http://www.ibiblio.org/maven/</url>
51. </repository>
52. <repository>
53. <id>PlanetMirror</id>
54. <name>Planet Mirror</name>
55. <url>http://public.planetmirror.com/pub/maven/</url>
56. </repository>
57. </repositories>
58.
59.
60. 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/
61.
62.
63. 发布第三方Jar到本地库中:
64.
65. mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar
66.
67.
68. -DdownloadSources=true
69.
70. -DdownloadJavadocs=true
71.
72. mvn -e 显示详细错误 信息.
73.
74. mvn validate 验证工程是否正确,所有需要的资源是否可用。
75. mvn test-compile 编译项目测试代码。 。
76. mvn integration-test 在集成测试可以运行的环境中处理和发布包。
77. mvn verify 运行任何检查,验证包是否有效且达到质量标准。
78. mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
82. 常用命令:
83. mvn -v 显示版本
84. mvn help:describe -Dplugin=help 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。
85. mvn help:describe -Dplugin=help -Dfull 使用Help 插件输出完整的带有参数的目标列
86. mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 获取单个目标的信息,设置 mojo 参数和 plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息
87. mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目标
88. mvn help:effective-pom 看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置
89.
90. mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 创建Maven的普通java项目,在命令行使用Maven Archetype 插件
91. mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序
92. mvn dependency:resolve 打印出已解决依赖的列表
93. mvn dependency:tree 打印整个依赖树
94.
95. mvn install -X 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行
96. mvn install -Dmaven.test.skip=true 给任何目标添加maven.test.skip 属性就能跳过测试
97. mvn install assembly:assembly 构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件
98.
99. mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
100. mvn compile 编译你的项目
101. mvn clean install 删除再编译
102.
103. mvn hibernate3:hbm2ddl 使用 Hibernate3 插件构造数据库