為什么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?插件構造數據庫??
?