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,問題解決。

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM