轉載自http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html
http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html
最近開發中要用到maven所以對maven進行了簡單的學習。因爲有個maven高手在身邊所以很快就上手了我這裏算是自我總結吧。關於maven是什麼東東請參考其它文章。
----------------準備工作-------------
Jdk 1.5以上java開發環境。
Eclipse IDE 一個。
Maven 3.0.3下載地址 http://maven.apache.org/docs/3.0.3/release-notes.html
----//快速搭建步驟
第一步配置maven環境
將下載文件解壓然後設置maven環境
如果你配置過jdk的話這裏對你應該不難。如我的maven環境爲F:\maven\apache-maven-3.0.3
我的電腦-----屬性----高級-----環境變量-----環境變量-----新建
變量名M2_HOME
變量值F:\maven\apache-maven-3.0.3
找到path
在環境變量值尾部加入;%M2_HOME%\bin;---前面注意分號
當然你也可以直接在path 路徑下加入;F:\maven\apache-maven-3.0.3\bin 只是上面的方式更優雅一點。
我新建立
打開命令提示符開始---運行---cmd,檢查我們的java環境和maven環境是否有誤。
第二步修改倉庫位置
修改我們倉庫地址倉庫用於存放我們項目所依賴的所有jar包。
我的倉庫路徑F:\maven\repo----這個路徑是我自己創建你可以將路徑創建在任何位置。
我們打開…\apache-maven-3.0.3\conf\目錄下的setting.xml文件設置成我們創建的倉庫路徑
下面我們用一個命令驗證一下。打開命令提示符輸入mvn help:system
該命令會打印出所有的java系統屬性和環境變量。這些信息對我們日常的編程工作很有幫且。
如果運行的過程中沒有錯誤打開我們倉庫F:\maven\repo會發現裏面多了一些文件。這些文件就是我們從maven的中央倉庫下載到本地倉庫的。
第三步創建maven項目
創建一個我們自己的項目。
我們通過maven命令行方式創建一個項目
mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0
因爲是第一次構建項目所有依賴的jar包都要從maven的中央倉庫下載所以需要時間等待。等以後我們的本地倉庫中積累了我們常用的jar包後我們的開發將變得非常規範和方便。^_^!!
藉助下載jar包的時間我們來了解一下pom.xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.chongshi.test</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>hello</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
projectpom.xml文件中的頂層元素
modelVersion指明POM使用的對象模型的版本。這個值很少改動。
groupId指明創建項目的組織或者小組的唯一標識。GroupId是項目的關鍵標識典型的此標識以組織的完全限定名來定義。比如org.apache.maven.plugins是所有Maven插件項目指定的groupId。
artifactId指明此項目產生的主要產品的基本名稱。項目的主要產品通常爲一個JAR文件。第二象源代碼包通常使用artifactId作爲最後名稱的一部分。典型的產品名稱使用這個格式 <artifactId>- <version>. <extension>(比如myapp-1.0.jar)。
version項目產品的版本號。Maven幫助你管理版本可以經常看到SNAPSHOT這個版本表明項目處於開發階段。
name項目的顯示名稱通常用於maven產生的文檔中。
url指定項目站點通常用於maven產生的文檔中。
description描述此項目通常用於maven產生的文檔中。
對於一個項目中只有下面的一部分是是我們需要關注的
<groupId>com.chongshi.test</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
第四步編譯項目代碼
我們的項目已經創建完成。但我們點開目錄發現它並不是我們eclipse所需要的項目目錄格式。我們需要把它構建成我們eclipse可以導入的項目。
在命令提示符下進入到我們的創建的項目目錄F:\maven\hello下執行mvn clean compile
Clean 告訴maven清理輸入出目錄target/compile告訴maven編譯項目主代碼。
不要急我們又需要一段時間來下載相關jar包。^_^!第一次用maven要學會淡定。
項目是編譯完了但項目的目錄結構還不是我們想要的eclipse的項目結構是不能導入到eclipse中的。所以還需要執行一個命令mvn eclipse:eclipse
命令執行完成後就得我們需要的項目目錄了。
第五步導入eclipse工具
打開的我們的eclipse工具。
先配置maven倉庫路徑
Window----Perferences-----java-----Build Path-----Classpath Variables
New一個變量的類路徑。
Name M2_REPO 注意這個名字必須要大寫。
Path F:/maven/repo 點擊“Folder…”找到有本地倉庫的位置。
下面可以導入我的hello項目了。Eclipse如何導入項目我這裏就不說了如果你是個java開發人員的話。
第六步包的更新與下載
打開項目發現我們junit 是3.8.1的有點老了。那我想換成4.7的如何通過maven的方式更換呢。其實很簡單打開我們項目下的的pom.xml文件。
……
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
……
更改變junit的版本號然後重新執行mvn eclipse:eclipse
Maven 中央倉庫地址http://search.maven.org
假如我們想下載一個struts 的jar包。在搜索框內搜索strruts 會要列出中央倉庫中的所有struts版本。
列表的格式與我們pom.xml配置文件的格式是對應的。
我們在pom.xml中加入
<groupId>stuts</groupId>
<artifactId>struts-scripting</artifactId>
<version>1.0.1</version>
然後更新項目就可從中央倉庫下載我們想要的任意jar包必須是開源的包
繼續學習內容
1. 如何創建一個web項目
如果想讓maven應用到項目開發中這個是必須的。
2. 如何使用jeety
maven提供的一個容器類似於tomcat
3. 如何創建一個代理倉庫
如果是團隊開發這個很有必要我們不可能每次都到中央倉庫拿包那樣很慢如果開發人員A已經下了某包開發人員B還要下創建代理倉庫A第一次下的包會存入代理倉庫中B要用時直接從代理倉庫取就行。
本文更新一個命令。
第一節中提示創建一個項目用archetype:create create是個被廢棄或不被推薦使用的插件在以後創建項目中請儘量使用archetype:generate
創建一個項目如下
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello
-DpackageName=com.chongshi.test -Dversion=1.0
第一節拋出了三個問題本文將解決前兩個
1. 如何創建一個web項目
2. 如何使用jettey容器運行
如果對maven的基本配置不瞭解的請先閱讀第一篇文章
http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html
-----//創建一個文本項目
1. 如何創建一個web項目。
其實非常簡單只是比普通項目多加一個參數DarchetypeArtifactId 命令如下
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=mywebapps -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
定位到創建項目的目錄下構建成eclipse項目
F:\mywebapp>mvn eclipse:eclipse
通過maven構建後就是我們eclipse所需要的項目目錄如下。
由於本文不是講解struts2項目的創建與配置所以就不寫struts2的配置過程但爲了不影響後面內容的講解所以這裏提供一個基於struts2的web項目
例子介紹http://www.mkyong.com/struts2/struts-2-hello-world-example/
項目源碼下載
http://www.mkyong.com/wp-content/uploads/2010/08/Struts2-Hello-World-Example.zip
我解壓到了本地D盤根目錄下由於已經是maven 的項目格式了所以不需要對該項目運行mvn eclipse:eclipse命令進行構建。直接導入到eclipse工具中。項目目錄結構如下
----//如何使用Jetty容器
2. 如何使用jetty容器運行項目。
使用添加jetty 運行項目。
Jetty和tomcat一樣也屬於web容器。Jetty做maven中做爲一個插件。我們要在pom.xml中添加jetty的插件才能調用jetty。
在<project>…</project>標籤之間插入如下信息
<build>
<finalName>Struts2Example</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在項目目錄下執行mvn jetty:jetty
D:\java\Administrator\workspace3\Struts2Example>mvn jetty:jetty
在慢長的等待插件下載過程中(公司網速不給力)我上了一次廁所、倒了一次水。在羣裏和朋友亂侃了一通。^_^!!
等插件下載完成後就可以運行jetty了運行命令mvn jetty:run
這時就可以在瀏覽器中訪問我們的jsp頁面了。
重啓Jetty按鍵盤ctrl+c根據提示按 y