?
搞了3天,終于搞定了maven + hudson + p4的集成配置。
下面一一介紹下各個工具的使用。
Maven:
?
-
安裝 , 解壓縮,設置環境變量:
C:\Users\tobrien > set M2_HOME=c:\Program Files\maven-2.0.9
C:\Users\tobrien > set PATH=%PATH%;%M2_HOME%\bin
-
Maven 目錄結構:
pom.xml | Maven’s POM, which is always at the top-level of a project. |
LICENSE.txt | A license file is encouraged for easy identification by users and is optional. |
README.txt | A simple note which might help first time users and is optional. |
target/ | Directory for all generated output. This would include compiled classes, generated sources that may be compiled, the generated site or anything else that might be generated as part of your build. |
target/generated-sources/plugin-id <plugin-id> <plugin-id> <plugin-id></plugin-id> </plugin-id> </plugin-id> | Standard location for generated sources. For example, you may generate some sources from a JavaCC grammar. |
src/main/java/ | Standard location for application sources. |
src/main/resources/ | Standard location for application resources. |
src/main/filters/ | Standard location for resource filters. |
src/main/assembly/ | Standard location for assembly filters. |
src/main/config/ | Standard location for application configuration filters. |
src/test/java/ | Standard location for test sources. |
src/test/resources/ | Standard location for test resources. |
src/test/filters/ | Standard location for test resource filters. |
?
?
-
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook
?
?
?
?
groupId
?
groupId:
團體,公司,小組,組織,項目,或者其它團體。團體標識的約定是,它以創
建這個項目的組織名稱的逆向域名 (reverse domain name) 開頭。來自 Sonatype
的項目有一個以 com.sonatype 開頭的 groupId ,而 Apache Software 的項目有以
org.apache 開頭的 groupId 。
ArtifactId:
在 groupId 下的表示一個單獨項目的唯一標識符。
Version:
一個項目的特定版本。發布的項目有一個固定的版本標識來指向該項目的某一個
特定的版本。而正在開發中的項目可以用一個特殊的標識,這種標識給版本加上
一個“ SNAPSHOT” 的標記。
項目的打包格式也是 Maven 坐標的重要組成部分,但是它不是項目唯一標識符的一個部
分。一個項目的 groupId:artifactId:version 使之成為一個獨一無二的項目;你不能同
時有一個擁有同樣的 groupId , artifactId 和 version 標識的項目。
packaging
項目的類型,默認是 jar ,描述了項目打包后的輸出。類型為 jar 的項目產生一個
JAR 文件,類型為 war 的項目產生一個 web 應用。
Maven 也提供了不同的依賴范圍 (dependency scope) 。 Simple 項目的 pom.xml 包含了
一個依賴—— junit:junit:jar:3.8.1 —— 范圍是 test 。當一個依賴的范圍是 test 的
時候,說明它在 Compiler 插件運行 compile 目標的時候是不可用的。它只有在運
行 compiler:testCompile 和 surefire:test 目標的時候才會被加入到 classpath 中。
當用 Maven 來創建 WAR 或者 EAR ,你可以配置 Maven 讓它在生成的構件中捆綁依賴,
你也可以配置 Maven ,使用 provided 范圍,讓它排除 WAR 文件中特定的依賴。 provided 范
圍告訴 Maven 一個依賴在編譯的時候需要,但是它不應該被捆綁在構建的輸出中。當你
開發 web 應用的時候 provided 范圍變得十分有用,你需要通過 Servlet API 來編譯你的代
碼,但是你不希望 Servlet API 的 JAR 文件包含在你 web 應用的 WEB-INF/lib 目錄中。
?
?
Maven 運行命令 :
mvn archetype:create -DgroupId=org.victor.mvn \
-DartifactId=simple-webapp -DpackageName=org.victor.mvn -DarchetypeArtifactId=maven
?
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.MyApp
?
mvn compile
?
mvn test
mvn install (mvn clean install)
mvn package
?
mvn assembly:assembly
?
?
?
?
?
?
忽略測試失敗
通常,你會開發一個帶有很多失敗單元測試的系統。 如果你正在實踐測試驅動開發
(TDD) ,你可能會使用測試失敗來衡量你離項目完成有多遠。 如果你有失敗的單元
測試,但你仍然希望產生構建輸出,你就必須告訴 Maven 讓它忽略測試失敗。 當
Maven 遇到一個測試失敗,它默認的行為是停止當前的構建。 如果你希望繼續構
建項目,即使 Surefire 插件遇到了失敗的單元測試,你就需要設置 Surefire 的
testFailureIgnore 這個配置屬性為 true 。
< project >
[...]
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins< /groupId >
< artifactId >maven-surefire-plugin< /artifactId >
< configuration >
< testFailureIgnore >true< /testFailureIgnore >
< /configuration >
< /plugin >
< /plugins >
< /build >
[...]
< /project >
?
?
跳過單元測試
< project >
[...]
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins< /groupId >
< artifactId >maven-surefire-plugin< /artifactId >
< configuration >
< skip >true< /skip >
< /configuration >
< /plugin >
< /plugins >
< /build >
[...]
< /project >
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
