qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          maven環(huán)境快速搭建

             最近,開發(fā)中要用到maven,所以對maven進(jìn)行了簡單的學(xué)習(xí)。因?yàn)橛袀€(gè)maven高手在身邊,所以,很快就上手了,我這里算是自我總結(jié)吧。關(guān)于maven是什么東東,請參考其它文章。

          ----------------準(zhǔn)備工作-------------

          Jdk  1.5以上java開發(fā)環(huán)境。

          Eclipse IDE 一個(gè)。

          Maven 3.0.3下載地址: http://maven.apache.org/docs/3.0.3/release-notes.html

          ----//快速搭建步驟

           

          第一步:配置maven環(huán)境

           

          將下載文件解壓,然后設(shè)置maven環(huán)境

          如果你配置過jdk的話,這里對你應(yīng)該不難。如我的maven環(huán)境為:F:\maven\apache-maven-3.0.3

          我的電腦-----屬性----高級-----環(huán)境變量-----環(huán)境變量-----新建

          變量名:M2_HOME

          變量值:F:\maven\apache-maven-3.0.3

          找到path 

          在環(huán)境變量值尾部加入:;%M2_HOME%\bin;---前面注意分號

          當(dāng)然,你也可以直接在path 路徑下加入:;F:\maven\apache-maven-3.0.3\bin  只是上面的方式更優(yōu)雅一點(diǎn)。

          我新建立

          打開命令提示符(開始---運(yùn)行---cmd,檢查我們的java環(huán)境和maven環(huán)境是否有誤。

           

           

          第二步:修改倉庫位置

           

          修改我們倉庫地址,倉庫用于存放我們項(xiàng)目所依賴的所有jar包。

          我的倉庫路徑:F:\maven\repo----這個(gè)路徑是我自己創(chuàng)建,你可以將路徑創(chuàng)建在任何位置。

          我們打開…\apache-maven-3.0.3\conf\目錄下的setting.xml文件,設(shè)置成我們創(chuàng)建的倉庫路徑

          下面我們用一個(gè)命令驗(yàn)證一下。打開命令提示符,輸入:mvn help:system 

          該命令會(huì)打印出所有的java系統(tǒng)屬性和環(huán)境變量。這些信息對我們?nèi)粘5木幊坦ぷ骱苡袔颓摇?/span>

          如果運(yùn)行的過程中沒有錯(cuò)誤,打開我們倉庫(F:\maven\repo)會(huì)發(fā)現(xiàn)里面多了一些文件。這些文件就是我們從maven的中央倉庫下載到本地倉庫的。

           

          第三步:創(chuàng)建maven項(xiàng)目

          創(chuàng)建一個(gè)我們自己的項(xiàng)目。

          我們通過maven命令行方式創(chuàng)建一個(gè)項(xiàng)目

          mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0

           

          因?yàn)槭堑谝淮螛?gòu)建項(xiàng)目,所有依賴的jar包都要從maven的中央倉庫下載,所以需要時(shí)間等待。等以后我們的本地倉庫中積累了我們常用的jar包后,我們的開發(fā)將變得非常規(guī)范和方便。^_^!!

           

          借助下載jar包的時(shí)間,我們來了解一下pom.xml文件。

           

          復(fù)制代碼
          <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>
          復(fù)制代碼

          Ø project:pom.xml文件中的頂層元素; 
          Ø modelVersion:指明POM使用的對象模型的版本。這個(gè)值很少改動(dòng)。
          Ø groupId:指明創(chuàng)建項(xiàng)目的組織或者小組的唯一標(biāo)識(shí)。GroupId是項(xiàng)目的關(guān)鍵標(biāo)識(shí),典型的,此標(biāo)識(shí)以組織的完全限定名來定義。比如,org.apache.maven.plugins是所有Maven插件項(xiàng)目指定的groupId。 

          Ø artifactId: 指明此項(xiàng)目產(chǎn)生的主要產(chǎn)品的基本名稱。項(xiàng)目的主要產(chǎn)品通常為一個(gè)JAR文件。第二,象源代碼包通常使用artifactId作為最后名稱的一部分。典型的 產(chǎn)品名稱使用這個(gè)格式: <artifactId>- <version>. <extension>(比 如:myapp-1.0.jar)。 

          Ø version:項(xiàng)目產(chǎn)品的版本號。Maven幫助你管理版本,可以經(jīng)??吹絊NAPSHOT這個(gè)版本,表明項(xiàng)目處于開發(fā)階段。 

          Ø name:項(xiàng)目的顯示名稱,通常用于maven產(chǎn)生的文檔中。 

          Ø url:指定項(xiàng)目站點(diǎn),通常用于maven產(chǎn)生的文檔中。 

          Ø description:描述此項(xiàng)目,通常用于maven產(chǎn)生的文檔中。

           

          對于一個(gè)項(xiàng)目中只有下面的一部分是是我們需要關(guān)注的:

          <groupId>com.chongshi.test</groupId>

           <artifactId>hello</artifactId>

           <version>1.0</version>

           

          第四步:編譯項(xiàng)目代碼

          我們的項(xiàng)目已經(jīng)創(chuàng)建完成。但我們點(diǎn)開目錄發(fā)現(xiàn),它并不是我們eclipse所需要的項(xiàng)目目錄格式。我們需要把它構(gòu)建成我們eclipse可以導(dǎo)入的項(xiàng)目。

          在命令提示符下進(jìn)入到我們的創(chuàng)建的項(xiàng)目目錄(F:\maven\hello)下,執(zhí)行:mvn clean compile

          Clean 告訴maven清理輸入出目錄target/,compile告訴maven編譯項(xiàng)目主代碼。

          不要急,我們又需要一段時(shí)間來下載,相關(guān)jar包。^_^!第一次用maven要學(xué)會(huì)淡定。

           

          項(xiàng)目是編譯完了,但項(xiàng)目的目錄結(jié)構(gòu)還不是我們想要的eclipse的項(xiàng)目結(jié)構(gòu),是不能導(dǎo)入到eclipse中的。所以,還需要執(zhí)行一個(gè)命令:mvn eclipse:eclipse

           

          命令執(zhí)行完成后就得我們需要的項(xiàng)目目錄了。

           

          第五步:導(dǎo)入eclipse工具

           

          打開的我們的eclipse工具。

          先配置maven倉庫路徑

          Window----Perferences-----java-----Build Path-----Classpath Variables

          New一個(gè)變量的類路徑。

          Name :M2_REPO   注意這個(gè)名字必須要大寫。

          Path :F:/maven/repo  點(diǎn)擊“Folder…”找到有本地倉庫的位置。

           

          下面,可以導(dǎo)入我的hello項(xiàng)目了。Eclipse如何導(dǎo)入項(xiàng)目,我這里就不說了,如果你是個(gè)java開發(fā)人員的話。

           

          第六步:包的更新與下載

           

          打開項(xiàng)目發(fā)現(xiàn)我們junit 是3.8.1的,有點(diǎn)老了。那我想換成4.7的,如何通過maven的方式更換呢。其實(shí),很簡單,打開我們項(xiàng)目下的的pom.xml文件。

          復(fù)制代碼
          ……
          <dependencies>
          <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.1</version>
          <scope>test</scope>
          </dependency>
          </dependencies>
          ……
          復(fù)制代碼

          更改變,junit的版本號,然后重新執(zhí)行:mvn eclipse:eclipse  

          Maven 中央倉庫地址:http://search.maven.org

           

          假如,我們想下載一個(gè)struts jar包。在搜索框內(nèi)搜索strruts ,會(huì)要列出中央倉庫中的所有struts版本。

          列表的格式與我們pom.xml配置文件的格式是對應(yīng)的。

           

           

           

           

          我們在pom.xml中加入:

          <groupId>stuts</groupId>

           <artifactId>struts-scription</artifactId>

           <version>1.0.1</version>

          然后更新項(xiàng)目就可從中央倉庫下載我們想要的任意jar包(必須是開源的包)

           

          繼續(xù)學(xué)習(xí)內(nèi)容:

          1. 如何創(chuàng)建一個(gè)web項(xiàng)目?

            如果想讓maven應(yīng)用到項(xiàng)目開發(fā)中,這個(gè)是必須的。

          2. 如何使用jeety?

            maven提供的一個(gè)容器,類似于tomcat

          3. 如何創(chuàng)建一個(gè)代理倉庫?

          http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository
          一個(gè)團(tuán)隊(duì)要真正用好Maven,repository私服是免不了的,否則team mate們多好奇的目光,都會(huì)全部消耗在漫長的jar下載中。

              以前介紹過一個(gè)搭建私服的簡樸但很笨的辦法--將雷鋒同志下載好的.m2/repository目錄整個(gè)上傳到任意的Web服務(wù)器中。其實(shí)世上多的是專業(yè)的maven私服搭建器,見TheServiceSide的文章--Setting Up a Maven  Repository

              我用的是Artifactory,忽然間覺得,Java的服務(wù)應(yīng)用啥時(shí)候終于變得這么好用了,什么都不用裝,不用配,雙擊artifactory.bat,自己就會(huì)啟動(dòng)Jetty Web服務(wù)器,典型的拆箱即用。

              10分鐘入門到開動(dòng)

          • 雙擊artifactory.bat,啟動(dòng)默認(rèn)配置的Artifactory服務(wù)。
          • http://localhost:8081/artifactory/,用admin/password登錄進(jìn)管理界面看看。
          • 修改自己項(xiàng)目的pom.xml,增加私服定義
                <repositories>
                    
            <repository>
                        
            <id>artifactory</id>
                        
            <name>your local artifactory</name>
                        
            <url>http://localhost:8081/artifactory/repo</url>
                    </
            repository>
                </
            repositories>

                
            <pluginRepositories>
                    
            <pluginRepository>
                        
            <id>artifactory</id>
                        
            <name>your local artifactory</name>
                        
            <url>http://localhost:8081/artifactory/plugins-releases</url>
                        
            <snapshots>
                            
            <enabled>false</enabled>
                        </
            snapshots>
                    </
            pluginRepository>
                </
            pluginRepositories>
          • 正常運(yùn)行項(xiàng)目的maven命令,向artifactory索求jar。如果artifactory已經(jīng)下載了就會(huì)直接返回給你,還沒有的 就會(huì)去那幾個(gè)repo官方站下載。進(jìn)入到artifactory的管理界面,不斷刷新Browse the repository,會(huì)看到倉庫不斷豐富的情況。

          另外,官網(wǎng)服務(wù)器上還沒有的一些jar,也可以通過管理界面很方便的deploy到Artifactory中。

          最后你團(tuán)隊(duì)里的artifactory服務(wù)器不能直接連外網(wǎng),需要使用HTTP代理服務(wù)器的話,見http://www.jfrog.org/sites/artifactory/latest/configuration.html

          建議那些愿意為開源作實(shí)事的站點(diǎn),在帶寬充裕的服務(wù)器上,用Artifactory搭一個(gè)jar倉庫吧,SpringSide就可以直接連上去下載jar了:)


            如果是團(tuán)隊(duì)開發(fā),這個(gè)很有必要,我們不可能每次都到中央倉庫拿包,那樣很慢,如果開發(fā)人員A已經(jīng)下了某包,開發(fā)人員B還要下;創(chuàng)建代理倉庫,A第一次下的包會(huì)存入代理倉庫中,B要用時(shí)直接從代理倉庫取就行。

          本文更新一個(gè)命令。

          第一節(jié)中提示創(chuàng)建一個(gè)項(xiàng)目用archetype:create  create是個(gè)被廢棄或不被推薦使用的插件,在以后創(chuàng)建項(xiàng)目中請盡量使用archetype:generate

          創(chuàng)建一個(gè)項(xiàng)目,如下:

          mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello 

          -DpackageName=com.chongshi.test -Dversion=1.0

          第一節(jié)拋出了三個(gè)問題,本文將解決前兩個(gè)

          1. 如何創(chuàng)建一個(gè)web項(xiàng)目

          2. 如何使用jettey容器運(yùn)行

          如果對maven的基本配置不了解的,請先閱讀第一篇文章:

          http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html

          -----//創(chuàng)建一個(gè)文本項(xiàng)目

           

          1. 如何創(chuàng)建一個(gè)web項(xiàng)目。

          其實(shí)非常簡單,只是比普通項(xiàng)目多加一個(gè)參數(shù)DarchetypeArtifactId ,命令如下:

          mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=mywebapps  -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0 

          定位到創(chuàng)建項(xiàng)目的目錄下構(gòu)建成eclipse項(xiàng)目:

           F:\mywebapp>mvn eclipse:eclipse 

           

          通過maven構(gòu)建后就是我們eclipse所需要的項(xiàng)目目錄如下。

          由于本文不是講解struts2項(xiàng)目的創(chuàng)建與配置,所以就不寫struts2的配置過程,但為了不影響后面內(nèi)容的講解,所以這里提供一個(gè)基于struts2web項(xiàng)目

          例子介紹:http://www.mkyong.com/struts2/struts-2-hello-world-example/

          項(xiàng)目源碼下載:

          http://www.mkyong.com/wp-content/uploads/2010/08/Struts2-Hello-World-Example.zip

          我解壓到了本地D盤根目錄下,由于已經(jīng)是maven 的項(xiàng)目格式了,所以不需要對該項(xiàng)目運(yùn)行mvn  eclipse:eclipse命令進(jìn)行構(gòu)建。直接導(dǎo)入到eclipse工具中。項(xiàng)目目錄結(jié)構(gòu)如下:

           

           

          ----//如何使用Jetty容器

          2. 如何使用jetty容器運(yùn)行項(xiàng)目。

          使用添加jetty 運(yùn)行項(xiàng)目。

           Jettytomcat一樣也屬于web容器。Jettymaven中做為一個(gè)插件。我們要在pom.xml中添加jetty的插件,才能調(diào)用jetty。

          <project>…</project>標(biāo)簽之間,插入如下信息:

           

          復(fù)制代碼
          <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>
          復(fù)制代碼

           

          在項(xiàng)目目錄下執(zhí)行mvn jetty:jetty   

           

          D:\java\Administrator\workspace3\Struts2Example>mvn jetty:jetty

          在慢長的等待插件下載過程中(公司網(wǎng)速不給力),我上了一次廁所、倒了一次水。在群里和朋友亂侃了一通。^_^!!

          等插件下載完成后就可以運(yùn)行jetty了,運(yùn)行命令:mvn jetty:run 

          這時(shí)就可以在瀏覽器中訪問我們的jsp頁面了。

           

          重啟Jetty,按鍵盤ctrl+c  根據(jù)提示按 y


          posted on 2012-05-02 15:19 順其自然EVO 閱讀(6154) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 寻乌县| 大宁县| 遂宁市| 阿拉善右旗| 治多县| 陆河县| 陇西县| 将乐县| 英吉沙县| 旺苍县| 贵阳市| 乳山市| 永川市| 定西市| 新营市| 崇礼县| 榆社县| 南丰县| 洮南市| 大安市| 探索| 富民县| 孟津县| 开鲁县| 满洲里市| 靖西县| 舟山市| 科技| 奉贤区| 台北市| 东兴市| 张家口市| 盐池县| 竹山县| 凭祥市| 庆阳市| 牙克石市| 孝感市| 衡阳市| 林周县| 嘉禾县|