利用eclipse構建和部署maven工程

來源:互聯網
上載者:User

  一、環境  
OS:win7  
jdk:1.6  
maven:3  
eclipse:jee3.6+m2eclipse  
tomcat:6  

二、建立由maven構建的web工程  
1、建立maven工程  
mvn archetype:generate  
在出現的archetype列表中可選擇一個合適的編號,例如  
197: remote -> struts2-archetype-blank (-)  
之後將會在工作空間出現maven工程  

 

執行mvn eclipse:eclipse  
工程目錄增加了一些目錄  

 

2、在eclipse中import maven工程  
如果用m2eclipse產生的Maven工程則省了上面兩步  
3、讓maven工程成為eclipse支援的dynamic web projtct 修改.project檔案或是  
4、在eclipse中修改project fact選擇java和dynamic web project兩項,  

 


之後應可以將工程加入tomcat部署,但會在工程中自動加入webconent目錄,並預設設定將webcontent下的內容發布到/下,  
 

 


需要修改為src/main/webapp目錄,有兩種辦法。  
一是在工程目錄中的.setting下修改org.eclipse.wst.common.component,修改成  
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>後,將webconent目錄刪除  


 

到這裡eclipse已經從maven手中接過了web工程的管理工作了。  


二在eclipse中部署web應用到容器中  
6、將web工程加入到tomcat的發布列表中。  

 
如果添加不了,可能是sevlet容器的版本太高了。修改:  

 


如果啟動後會發現報java.lang.ClassNotFoundException異常。這是因為maven的依賴包並未一同發布到tomcat中  

還要設定部署  
eclipse中右鍵工程,選擇maven-->enable dependency management  
 

在工程屬性中找到deployment assembly配置項--》add-->Referenced Projects classpath entries-->next  

 

在出現的視窗中找到要配置工程下面有一個Maven dependencies項,勾上  
mvn12.png  


mvn13.png  


即使這樣,我也遇到jar包不能發布到lib目錄的怪事。後來開啟工程的.classespath發現有一項是這樣的  






在工程屬性的java build paths配置項中 order and export->將mavent dependencies項  
mvn14.png  


<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">  
<attributes>  
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>  
</attributes>  
</classpathentry>  

需要將value="../"設定成“/WEB-INF/lib”我想這是一個bug.這樣就ok了  

注意事項:  
一旦eclipse的部署環境調試好後,盡量不要再用mvn eclipse:eclipse了。否則上面的工作還要再做一遍。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.