Maven項目管理工具初體驗

  在最前面聲明,本文不涉及任何原理,只是對使用方法和期間遇到的問題如何解決。主要是隨着年紀原來越大,越覺得好記星不如爛筆頭的深意,同時如果能夠幫助誰,那就最好不過了。

  前兩天自己做一個項目,然後好心朋友要幫忙,但我把項目放到Git上以後出現了點問題,工程文件.project沒有上傳,依賴的jar文件沒有上傳,當他從Git上Down下來以後就不太好處理,然後果斷將項目改爲Maven項目。這就是本文的起源。

  首先要在Eclipse中安裝插件:在Help-->install new software,輸入下面地址http://download.eclipse.org/technology/m2e/releases,出現如下頁面:

  

  然後就像安裝其他插件那樣一路下一步就OK了。安裝完成之後,我們來看一下是否成功,在Eclipse中,Windows->Preferences,如果出現下面的畫面,那麼恭喜你完成了第一步:

  

  值得注意的是Embedded內置的默認maven版本是我們即將要修改的,應爲這個版本有點老了,這直接導致的後果就是在添加dependences的時候,maven的庫不是最新的。

  其次去maven的官網下載最新版的maven,此時的最新版本爲3.2.1,下載地址如下:http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.zip。解壓到本地目錄,比如我的環境中,在本地目錄F:\apache-maven-3.2.1中,在下面配置一下F:\apache-maven-3.2.1\conf目錄中的settings.xml文件,更改一下如下配置:  

  <!-- localRepository     | The path to the local repository maven will use to store artifacts.     |     | Default: ${user.home}/.m2/repository  -->    <localRepository>F:/m2/repository</localRepository>

  當然在本地磁盤F:下創建文件夾m2,然後將剛纔配置好的settings.xml文件拷貝到F:/m2目錄下。OK,此處有個問題,可能有人說需不需要設置maven的環境變量,可以設置,但是如果只是使用Eclipse的maven的插件而不需要使用命令行,就不用了。反正我沒有設置。下面我們在Eclipse中設置maven到我們剛下載的版本。

  

  然後設置用戶settings,如下圖:

  

  然後保存。OK。這樣我設置完了。我們創建一個Maven項目試試手吧。

  在創建嚮導中多了maven的相關選項:

  

  選擇一個web程序:

  

  然後給取名字就好了:

  

  小手輕輕點一下Finish,OK,一個maven程序就算創建完成了。下面觀察一下這個項目,在項目上右擊->properties->Project Facets看下面的內容:

  

  默認的jre是1.5版本,Dynamic Web Module版本爲2.3,當然我這種好大喜功的人當然要改成最新版本,好吧看我的操作:

  

  我修改了jre的版本和web module的版本,但是web module的版本提示出錯了,怎麼辦,在所創建項目的根目錄有個文件夾.settings,下面有個org.eclipse.wst.common.project.facet.core.xml,文件,打開以後發現內容如下:  

<?xml version="1.0" encoding="UTF-8"?>  <faceted-project>    <fixed facet="wst.jsdt.web"/>    <installed facet="jst.web" version="2.3"/>    <installed facet="wst.jsdt.web" version="1.0"/>    <installed facet="java" version="1.5"/>  </faceted-project>

  對jst.web的值做一下修改:

<?xml version="1.0" encoding="UTF-8"?>  <faceted-project>    <fixed facet="wst.jsdt.web"/>    <installed facet="jst.web" version="3.0"/>    <installed facet="wst.jsdt.web" version="1.0"/>    <installed facet="java" version="1.5"/>  </faceted-project>

  保存以後,打開項目,右鍵項目名稱,然後在彈出的菜單中選擇Maven->Update Project,

    

  然後在彈出的窗口中選擇本項目:

  

  然後點擊OK,你會發現程序出錯了:

  

  然後右鍵項目,在項目上右擊->properties->Project Facets做出如下修改:

  

  特麼的我那會設置的jre的版本已經變爲1.5了,好吧,再次設置爲1.7,保存。此時出現一個新的問題:  

Description    Resource    Path    Location    Type  Java compiler level does not match the version of the installed Java project facet.    test-001        Unknown    Faceted Project Problem (Java Version Mismatch)

  解決辦法,郵件項目,選擇屬性,設置java Compiler的jdk版本,

  

  原來是1.5版本,點擊OK之後,錯誤消失。這裏面要注意的是,每次你Upload Project的時候,這個設置都會恢復成最開始的默認值,是很煩人,這個問題有兩個解決辦法,一個是這樣在pom.xml文件中添加如下內容:  

<build>          <finalName>test-001</finalName>          <plugins>              <plugin>                  <groupId>org.apache.maven.plugins</groupId>                  <artifactId>maven-compiler-plugin</artifactId>                  <configuration>                      <source>1.7</source>                      <target>1.7</target>                  </configuration>              </plugin>          </plugins>      </build>

  但是這樣的話只能對這個項目起作用,最根本上還是要從maven本身的配置入手,如何在創建項目的時候就指定默認的jdk呢?

  這樣,在maven的安裝目錄下面的conf/settings.xml文件夾中添加下面一段內容:  

  <profiles>                <profile>              <id>jdk-1.7</id>              <activation>                  <activeByDefault>true</activeByDefault>                  <jdk>1.7</jdk>              </activation>              <properties>                  <maven.compiler.source>1.7</maven.compiler.source>                  <maven.compiler.target>1.7</maven.compiler.target>                  <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>              </properties>    </profile>     </profiles>  

  如果此時Eclipse正在運行,那麼重啓一下Eclipse,以後再創建的項目默認的jdk選項均爲1.7。就不用每次都配置了。

  最後一個很奇怪的問題,也是困擾我很長時間的問題,就是org.eclipse.wst.common.project.facet.core.xml文件中的內容爲:  

<?xml version="1.0" encoding="UTF-8"?>  <faceted-project>    <fixed facet="wst.jsdt.web"/>    <installed facet="java" version="1.7"/>    <installed facet="jst.web" version="3.0"/>    <installed facet="wst.jsdt.web" version="1.0"/>  </faceted-project>

  而程序一直報這個異常:

  

  但是項目的屬性中看,程序沒有問題:

  

  我嘗試了很多方法,在網上也搜了很多,但是都不能解決我的問題,仔細看了一下工程,在web.xml中的標記使這樣:  

http://java.sun.com/dtd/web-app_2_3.dtd

  果斷改成  

http://java.sun.com/dtd/web-app_3_0.dtd

 

  OK,問題解決。

  文章中我處理問題的方式,符合我的環境和情景,如果誰和我一樣,給你一點幫助我感覺很欣慰。

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章