1. 如何把maven項目轉成web項目
把一個maven項目轉化成web項目方法:
創建Web工程,使用eclipse ee創建maven web工程 。
1、右鍵項目,選擇Project Facets,點擊Convert to faceted from 。
2。更改Dynamic Web Mole的Version為2.5(3.0為Java7的,Tomcat6不支持)。 如果提示錯誤,可能需要在Java Compiler設置Compiler compliance level 為1.6 。或者需要在此窗口的Java的Version改成1.6。
3、點擊下面的Further configuration available…,彈出Modify Faceted Project窗口 此處是設置web。xml文件的路徑,輸入src/main/webapp. Generate web.xml deployment descriptor自動生成web.xml文件,可選可不選。
4、點擊OK。
5、設置部署程序集(Web Deployment Assembly)
6、在右鍵項目打開此窗口、在左側列表中會出現一個Deployment Assembly,點擊進去後。
7、刪除test的兩項,因為test是測試使用,並不需要部署。
8、設置將Maven的jar包發布到lib下。 Add -> Java Build Path Entries -> Maven Dependencies -> Finish 完成後有: /src/main/webapp / /src/main/java /WEB-INF/classes /src/main/resources /WEB-INF/classes Maven Dependencies /WEB-INF/lib 好了。
2. eclipse中怎麼添加maven
打開Eclipse,依次打開Windows-->Prefrences,點擊Maven的右邊的三角符號,以展開Maven的配置界面
3. 如何創建maven web工程
因eclipse已安裝了maven插件,所以省略了maven插件的安裝步驟。
構建maven工程:
1)選擇maven project
2)保持默認即可
3)選擇webapp,因為我們要建的是web工程啊
4)groupID即總的項目,即公司的url倒敘。下面可以有多個小工程;
Artifact ID 即子項目的名稱; 同時會生成默認的包名,可以修改。
項目名稱為test1.
5)finish
4. eclipse怎麼啟動maven項目有兩個src
開門見山。eclipse怎麼啟動maven項目有兩個src。方式一:1.構建maven項目。1.1 新建meven項目,可在Other中者叢找到maven文件夾。1.2 進州大入maven項目後,點擊next。1.3 在Catalog中選擇「Internal」,選中webapp之後,點擊next。1.4 在Group Id和Artifact Id中輸入名稱id,package可以為空,點擊Finish
2.配置maven環境
3.選中項目,右鍵運行,選擇Server 或者是直接啟動tomcat即可。
方式二首跡櫻:
1.右擊—>新建maven項目,勾選創建一個簡單工程。
2. 填入信息,注意打包方式要改為war
3. 點擊完成,創建完的工程目錄如下
4. 項目中沒有WEB-INF目錄,讓eclipse幫助我們補全:
5. 現在再將Dynamic Web Services勾上,版本改為3.0,同時下面會出現一行字,單擊他。
5. 怎樣創建一個maven webapp工程
方法/步驟
1
使用Eclipse創建Maven Web工程
2
找到Maven Project,點擊Next
3
勾選上Create a simple project (不使用骨架),Next
4
填寫工程名稱和包名,並選擇war類型,Finish
5
選擇packing是war類型,在main下會生成 webapp目錄
6
使用eclipse發布到tomcat下,需要把項目轉成dynamic web project。
選擇工程單擊右鍵,選擇properties 並找到 Project Facets ,並點擊Convert to faceted form…
7
勾選Dynamic Web Mole 並點擊ok (3.0隻有tomcat7才支持)
8
這時工程結構下會產生一個Web Content目錄
9
雖然此時我們可以發布到tomcat中,但這不符合maven的結構,繼續操作。
把WebContent下面兩個目錄 META-INF ,WEB-INF 直接復制到src/main/webapp目錄下,並刪掉WebContent目錄,結果如下
10
修改發布規則:先擇工程單擊右鍵, 選擇 Properties,
選擇Deployment Assembly:把WebContent Remove掉;測試類我們也不需要發布,test的兩個目錄頁可以remove
11
重新指定WEB路徑:點擊add,選擇Folder
12
在src/main下找到webapp目錄,然後finish
13
把當前的build path 指向 Maven Dependency, 直接點擊add,選擇Java Build Path Entries 然後next
14
15
完成後如下圖
16
進入開發:
(1)pom.xml可以從http://www.mvnrepository.com/ 加入需要jar包的配置路徑;
(2)webapp下可以創建web頁面的目錄結構;
(3)main/java里創建java程序包結構。
http://jingyan..com/article/9f63fb91a7d2a5c8400f0e20.html
6. maven怎麼建web project
在Eclipse下新建項目時,選擇新建Maven項目,如圖
默認渣返點擊下一步,在「select an archetype」這步時,一樣使用默認的配置,如圖
下一步,需要輸入項目名稱,起名為「testMavenWeb」項目,點擊【finish】,完成項目創建。
此時,一個Java Maven項目創建成功,但並不是Maven Web項目,項目的結構如圖:
Java Maven 創建成功後,再創建一個Web項目,在「select an archetype」這步時,選擇「maven-archetype-webapp」,成功創建一個web項目,如圖
然後將該web項目扮梁嘩下的webapp文件夾,拷貝到testMavenWeb項目下,至此,在Eclipse下的Maven Web項目創建成功廳行,創建成功的Maven Web項目結構如圖:
7. Java 我的eclipes新建maven文件缺少maven depeendcies項目 剛剛配置maven 求大神急
maven項目移除Maven&Dependencies後如何在添加枯數進去
昨天一不留神,把Maven
Dependencies給移除掉了。一陣痛苦...!
1:找到工程的上一個版本
2:直接替換你的.classpath文件
3:找到工程-右鍵-Maven-Update
Project...& Alt+F5
4:找到工程-右鍵-Build Path-Configure Build Path...在
LiBraries列表中 是不是已經看到了Maven Dependencies。
如果你的工程已經沒有了上一個版本
1:打開.classpath文件
在你的.classpath文件中加入上文中藍色背景部分就可以了
上面的代碼前面都加行號是因為新浪博客把代碼直接顯示了,避免這個問題出現。
已投稿到:
以上網友發言只代表其個人觀點,不代表新浪網的觀點或立場。Eclipse使用Maven構建web項目 - Java - ITeye技術網站
博客分類:
1.創建Maven項目:
點擊「File」菜單,或者通過工具欄的「New」創建Project,如下圖所示:
選擇Maven-》Maven Project,彈出向導對話框,如下圖所示:
選中Create a simple project……復選框,其它的設置不變,並點擊Next,輸入maven項目必須的信息(groupId,artifactid,version),如下圖所示:
這里需要選擇Packaging,web項目一般選擇war即可。點擊Finish,完成項目創建,下圖為創建的項目結構(項目名稱為:sample-webapp):
2.配置web項目坦敗謹:
右鍵點擊sample-webapp項目,依次點擊Properties-》Project Facets-》Convert to faceted form… ,如下圖所示:
勾選Dynamic Web Mole,並選擇版本(這里使用2.5,由於3.0版本需要tomcat7),如下圖所示:
點擊OK,此時,項目結構樹增加了WebContent文件夾,如下圖所示:
將WebContent下的WEB-INF、META-INF文件夾到src/main/webapp目錄下,並且刪除WebContent目錄,完成之後,如下圖所示:
右鍵點擊sample-webapp項目,依次點擊Properties-》Deployment Assembly,如下圖所示:
此時,通過Remove按鈕刪除/src/test/java、/src/test/resources、/WebContent,並且通過Add添加webapp與maven依賴,如下圖所示:
首先Add-》Folder,選擇webapp目錄並Finish,再選擇Java Build Path Entries-》Maven Dependencies
完成之後,如下圖所示:
3.部署web項目:
添加tomcat server,並部署web項目,這里不描述,與非maven項目基本相同。
瀏覽 50198
不要這么麻煩有更好的話,可以共享哈
Dead_knight
瀏覽: 864524 次
來自: 杭州
瀏覽量:169349
瀏覽量:28011
瀏覽量:147916
厲害了 困擾我大半個月的問題解決了
雙向的時候谷歌提示「不接受您的登錄證書,或者您可能沒有提供登錄 ...
不成功啊。啟動有問題 &Security& < ...
寫的太棒了,中國需要你這樣的人才。Eclipse中創建Web Maven Project並部署到Tomcat中(Maven 的Web Project加入另一個Maven Project依賴) - Josh_Persistence - ITeye技術網站
博客分類:
大家都知道,在進行J2EE項目的開發過程中,在調試階段如果只是修改了頁面是不需要重啟應用伺服器的,比如不需要重啟Tomcat。只需要在瀏覽器中進行頁面刷新即可。其實之所以不用重啟Tomcat等應用伺服器,其根本原因是因為我們可以在應用伺服器的配置文件中設置虛擬目錄,這樣就可以知道web項目所讓基在的目錄,於是就可以省去打包、然後再重新發布到伺服器的步驟。
為什麼不需要重啟呢?
在Eclipse中開發j2ee項目,所有的jsp文件都是放在WebRoot目錄下面,用戶需要把所有用到的jar包放到WEB-INF(WebRoot的子目錄)目錄下的lib目錄下(這就是沒有用maven管理的缺點,所有jar都要自己去找);Eclipse編譯時,會把java源代碼產生的class文件放到WEB-INF目錄的classes目錄下。所以大家在應用伺服器中指定虛擬目錄時,直接指定到WebRoot目錄就行了,這樣在調試過程中,如果只修改了jsp文件,則不需要重啟伺服器,刷新頁面,就可以看到修改後的效果。
一. 在沒有用Maven管理項目時,在Eclipse中將一個項目發布到Tomcat是非常方便的。
如果是一個web項目,那麼只需要在Eclipse中的Servers View中簡單的添加(因為Eclipse能夠檢測到web項目),
選中想要添加的web項目,然後點擊Finish按鈕即可。
如果不是web項目,有兩種解決方法:
第一種是也在Eclipse的Servers View中添加一個Server,然後直接點擊Finish按鈕。然後在Eclipse的Servers View中雙擊剛添加的Server,並點擊Add External Web Moudle按鈕,並直接找到該項目的絕對路徑然後將其添加到Eclipse中,並指定path路徑為src/main/webapp. C:\Users\swang6\workspace\AutoStressTest\ASTWeb\src\main\webapp
第二種方法是通過如下步驟將一個非Web Project修改為Web Project:
右擊工程選擇properties—&project facets
2. 點擊鏈接"Convert to faccted from..."(注意,該鏈接只在第一次出現,即在點擊過一次後,不再出現)然後選上Dynamic Web Mole ,如果Version是2.4,可把Version由2.4改為2.5.(注意如果你當前是使用Tomcat6及Tomcat6以前的版本,不能使用Version3.0, 因為Version3.0支持的JDK是7.0以上的版本,Tomcat6不支持)
然後點擊下面的Further configuration available…,彈出Modify Faceted Project窗口此處是設置web.xml文件的路徑,輸入src/main/webapp,該操作會在src/main/webapp中創建一個新的web.xml文件,即該目錄為web項目的虛擬目錄. 然後直接和前面提到的操作一樣,只需要在Eclipse的Servers view 中增加一個tomcat server, 並直接將web moudle加到該工程中. (註:Further configuration available…鏈接也是再點擊一次後,以後就不會再出現。)
二. 在用Maven管理j2EE項目時
在用Maven管理項目時,也可以使用如上提到的方法。但有人會問,在Eclipse中,如何創建一個Maven的Web項目?如果多個Maven項目之間有依賴,如何在部署到Tomcat的時候將互相依賴的項目也部署進去?
問題1: 如何在Eclipse中創建一個Maven的web項目。(為了讓更多的人了解怎麼創建有相互依賴關系的Maven項目,即有父子關系,下面以一個這樣的例子為例說明)
Eclipse中安裝maven插件:m2e -
2 . 創建一個maven 的web 項目:
使用eclipse直接創建maven的web項目:
1):在eclipse建立一個maven項目,彈出窗口選著webapp, 點擊next,輸入相關的信息就行。在下面的對話框中選擇maven-archetype-webapp。 我們假定該項目為parent項目,注意parent項目的packaing必須是pom,如果是war,因為我們這個地方創建的是一個web項目,默認的packaging方式是war,所以需要將其改為pom
&groupId&com.wsheng&/groupId&
&artifactId&wsheng-spring-base&/artifactId&
&packaging&pom&/packaging&
2)在有的Eclipse版本中,可能需要自己手動創建如下3個源文件:分別為:src.main.java,src.test.java和src.test.resources
3)在第一步結束後,你會發現現在Eclipse的工作區間中多了一個maven的project項目:wsheng-spring-base。
4)右擊wsheng-spring-base,選擇創建一個Maven 的mole
輸入mole名字為wsheng-spring-mvc, 同1)一樣,選擇創建一個maven-archetype-webapp的web項目。
5) 創建結束後,wsheng-spring-base和wsheng-spring-mvc都是maven的web項目,當然你知道可以在Eclipse的Servers View中New 一個Server,你會發現,Eclipse中你可以直接部署這兩個項目到Tomcat中,所以他們也就是Web項目了。這種方法是最簡單的方法。直接可以在Eclipse中修改頁面文件,會自動部署到Tomcat中而不用重啟Tomcat。
特別需要注意的是,不要執行mvn eclipse:eclipse命令,執行該命令後,會將一個maven的project轉化為一個eclipse的project,即此時在eclipse中就不再是一個maven的web project了,就不能直接部署到Tomcat中了。
問題二:如果我們在Eclipse中創建的項目不是像上面一樣創建Maven的Web項目,而是普通的項目,怎樣將其部署到Tomcat中?
註: 該方法顯然很麻煩,直接在Eclipse中創建一個Maven的Web項目是多麼的簡單,但介紹該方法主要是為了讓大家明白Eclipse中部署項目到Tomcat的本質所在。有興趣的朋友不妨一試。
1. 可以參照上面的《第二種方法是通過如下步驟將一個非Web Project修改為Web Project:》現將一個非maven的web項目轉化為一個maven的web項目。如現在有一個testMaven的project我們經過轉換,將其轉化為一個Maven的Web項目後。
2. 創建的幾個java類和一個abc.jsp頁面進行測試。
(其中target目錄是用來存放項目打包之後生成的文件的目錄,圖一中顯示target目錄下並沒有文件,是因為我們還沒有用maven對項目進行打包。)
運行打包命令:mvn clean package 【對項目進行打包】
運行此命令後,項目的結構如圖二:
執行上面的命令後你會發現圖二中target目錄下多出了幾個子目錄和文件,這是因為運行命令mvn clean package後,生成的文件默認會放在target目錄下。其中testMaven.war文件可以直接拷貝到應用伺服器如Tomcat的發布目錄下,啟動伺服器可以直接運行!但在開發階段,相信不會有人這么調試web項目!因為這樣不停的拷貝到Tomcat中太麻煩了!!!
其實如果你認真觀察,你會發現生成的子目錄testMaven也是一個完整的web應用,展開後如圖三:
根據前面所說的,如果我們能夠制定一個web項目的虛擬目錄,直接將其部署到Tomcat中即可。 在此例子中虛擬目錄應該是 「D:/EclipseWorkspace/testMaven/target/testMaven」。但這樣的話,有一個缺點,那就是每次只要修改了項 目中的文件,即使是jsp文件或者靜態頁面,你都要運行mvn clean package命令重新打包;要不然你的修改就不會更新到target目錄下的文件中去!這樣的話感覺比較麻煩,萬一忘了執行此命令就刷新頁面,發現沒有看到修改後的效果,找問題都不好找!因為maven遵循「約定優先於配置」的思想。所以一般所有的頁面都是放在目錄webapp下面的,就我這例子而言也是 如此!圖二和圖三都是執行了mvn clean package命令之後的項目的目錄結構,認真觀察可以發現在webapp的子目錄WEB-INF下面除了頁面的源文件,並沒有classes目錄和lib目 錄!要是有的話,那直接把虛擬目錄指定到此webapp目錄下即「D:/EclipseWorkspace/testMaven/src/main /webapp」那該多好,就不用每次修改了頁面都需要運行命令mvn clean package之後才能看到效果!
對於這個問題是可以解決的,由於maven遵循「約定優先於配置」的思想,所以如果不做特殊配置,它約定默認是把打包之後產生的文件都放在target目錄下的。要想改變此默認行為,我們修改在項目中的pom.xml文件。在此項目中,添加如下配置:
&!-- 更改maven默認的打包目錄:將class文件和lib目錄打包放到指定的目錄 --&
&artifactId&maven-war-plugin&/artifactId&
&configuration&
&webappDirectory&${basedir}/src/main/webapp&/webappDirectory&
&warSourceDirectory&${basedir}/src/main/webapp&/warSourceDirectory&
&/configuration&
&/plugins&&/build&
4. 在Pom文件中增加如上命令後運行打包命令mvn clean package,項目的目錄結構圖如圖四:
從圖四可以看到,webapp的子目錄WEB-INF下面多出了classes和 lib目錄。這樣的話,如果你只修改了頁面,就不需要再執行mvn clean package命令對項目進行打包了(因為頁面的源文件都直接在webapp目下的),直接享受修改頁面即可刷新頁面的快捷了(但是如果修改的是java文 件,則還是需要執行mvn clean package命令重新打包的;同理每次修改了pom.xml文件也是一樣,即也需要重新執行mvn clean package)!
總之:該方法一旦啟動tomcat後,如果只是jsp頁面的變化,不需要重新運行mvn clean package 命令,而如果是修改了java代碼後,不需要將tomcat停掉,只需要運行 mvn clean package命令即可。會自動部署。
附:不使用Eclipse怎樣創建Maven的項目?
使用命令行: mvn archetype:create -DgroupId=my.maven.test -
DartifactId=testMaven
-DarchetypeArtifactId=maven-archetype-webapp
該篇文章的另一個重要的主題:如何在Eclipse中將兩個有Dependency的Maven Project關聯起來:
比如現在有一個maven web項目:storeweb, 該項目可以直接部署在Tomcat中,但該項目本身又直接依賴另一個maven 項目,如store_rest項目,該項目為storeweb項目為store_rest項目提供Rest風格的API.那麼在將storeweb項目部署到Tomcat的時候,同時也需要將store_rest部署到Tomcat中,可以使用下面的方法:分為2步,第一步是Add maven Dependencies,第二步是Add project dependencies.
4.1 Add maven dependencies
Right click the web project 「properties」 -------& click the 「Deployment Assembly」 ----&
Click add button
4.2 Choose Java Build Path Entires ---& click Next
4.3 Choose Maven Dependencies------&
Add project dependencies, Click add button
4. 5: Choose Project-----& Click Next button
Choose your dependencies project -----& Click Finish button
瀏覽 21009
Josh_Persistence
瀏覽: 721787 次
來自: 上海
VCenter、ESXServer、Cluster這些實體類在 ...
感謝樓主分享
感覺博主的圖有點問題吧~覺得暫存區到工作區應該是git res ...
這兩天正在學習solrcloud,相當受用。發現solrclo ...
請教一下:1&我的Solr安裝在d:\solr-5.4. ...Maven Repository: org.mongodb >> mongo-java-driver >>
>> mongo-java-driver
The MongoDB Java Driver uber-artifact, containing mongodb-driver, mongodb-driver-core, and bson
LicenseApache 2.0CategoriesTagsUsed .4.x(Jan, 2017)(Dec, 2016)(Nov, 2016)(Oct, 2016) 0
(Sep, 2016)3.3.x(Jul, 2016)3.2.x(Feb, 2016)(Jan, 2016)(Dec, 2015)(Nov, 2015)3.1.x(Nov, 2015)(Oct, 2015) 0
(Sep, 2015)3.0.x(Sep, 2015)(Jul, 2015)(May, 2015)(May, 2015)(Mar, 2015) 0
(Mar, 2015) 0
(Mar, 2015) 0
(Feb, 2015) 0
(Feb, 2015) 0
(Jan, 2015)2.14.x(Jul, 2016)(Mar, 2016)(Jan, 2016)(Dec, 2015) 0
(Nov, 2015)2.13.x(Sep, 2015)(May, 2015)(Apr, 2015)(Jan, 2015)(Jan, 2015)(Dec, 2014)(Nov, 2014)2.12.x(Jan, 2015)(Oct, 2014)(Jul, 2014)(May, 2014)(Apr, 2014)(Apr, 2014)(Mar, 2014)(Mar, 2014)(Mar, 2014)(Feb, 2014)2.11.x(Jan, 2014)(Sep, 2013)(Jun, 2013)(Apr, 2013)(Mar, 2013) 0
(Mar, 2013)2.10.x(Dec, 2012)(Nov, 2012)2.9.x(Oct, 2012)(Oct, 2012)(Sep, 2012)(Aug, 2012) 0
(Aug, 2012)(Aug, 2012)2.8.x(Jun, 2012)(May, 2012)2.7.x(Jan, 2012)(Nov, 2011)(Nov, 2011) 0
(Nov, 2011) 0
(Nov, 2011) 0
(Oct, 2011) 0
(Oct, 2011) 0
(Oct, 2011)2.6.x(Aug, 2011) 0
(Nov, 2011)(Jun, 2011) 0
(Nov, 2011) 0
(Nov, 2011)(Jun, 2011)(May, 2011)(May, 2011)2.5.x(Apr, 2011) 0
(Nov, 2011) 0
(Nov, 2011)(Mar, 2011) 0
(Nov, 2011) 0
(Mar, 2011)(Mar, 2011)2.4.x(Dec, 2010) 0
(Nov, 2011)2.3.x(Oct, 2010)2.2.x(Oct, 2010)2.1.x(Aug, 2010)2.0.x(Jun, 2010)(May, 2010) 0
(May, 2010) 0
(May, 2010) 0
(May, 2010)1.4.x(Apr, 2010)1.3.x(Mar, 2010)1.2.x(Dec, 2009) 0
(Dec, 2009)1.1.x(Dec, 2009)1.0.x(Dec, 2009)0.11.x 0
(Oct, 2009)0.9.x 0
(Oct, 2009)Related Books (2018)by Shannon Bradshaw, Kristina Chodorow (2016)by Krishna Rungta (2016)by AWS Whitepapers, Amazon Web Services (2016)by Max Lemann (2016)by Dan Warnock (2016)by Kyle Banker, Peter Bakkum, Shaun Verch, Doug Garrett, Tim Hawkins (2016)by Daniel Perkins (2016)by Cyrus Dasadia, Amol Nayak (2015)by Eelco Plugge, David Hows, Peter Membrey, Tim Hawkins (2015)by Exponential Mobile (2015)by
(2015)by Derek Rangel (2015)by Francesco Marchioni (2015)by sumit saraswat (2015)by Wilson da Rocha Franca (2015)by George Duckett (2014)by Peter Membrey, David Hows, Eelco Plugge (2014)by Amol Nayak (2014)by Brad Dayley (2014)by John Lynn (2014)by Afshin Mehrabani (2014)by Steve Hoberman (2014)by Anand Patil (2014)by Bo Borland (2013)by Kristina Chodorow (2013)by Rick Copeland (2011)by Kyle Banker (2011)by Kristina Chodorow (2010)by Kristina Chodorow, Michael Dirolf
Web site developed by
Powered by:
8. 如何使用eclipse創建Maven工程及其子模塊
1,首先創建一個父類工程 子模塊繼承父類工程 並在父類工程的pom.xml文件中定義引入的jar及其版本號 子模塊可以引碧橘用
創建工程完成
創建支持eclipse的多模塊maven項目
通過maven可以創建多個關聯模塊的項目(Multiple Mole Projects)。由一個總的模塊,下麵包含多個子模塊(子模塊還可以包含子模塊)。這種maven功能能支持大型的項目構建,往往大型項目由很多子模塊組成。
以下說明在eclipse下如何創建多模塊的maven項目。
創建總的POM
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=multi-moles-demo
創建一個maven項目,然後修改該項目的pom.xml文件,package類型改為pom:
<packaging>pom</packaging>
並且刪除src目錄。
創建子模塊
在總模塊目錄下,創建子模塊,比如web-demo:
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=web-demo
再創建一個比如日誌模塊:
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=logging-demo
在總pom的pom.xml文件中已經自動加入:
<moles>
<mole>web-demo</mole>
<mole>logging-demo</mole>
</moles>
在各子模塊的pom.xml文件中也自動加入了:
<parent>
<artifactId>multi-moles-demo</artifactId>
<groupId>com.easymorse.marshal</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
子模塊繼承了總POM的package,這里需要修改,web-demo模塊覆蓋為:
<packaging>war</packaging>
logging-demo模塊修改為
<packaging>jar</packaging>
對上級模塊的特別設置
需要在上級模塊中設置java編譯的參數余檔,現在eclipse一般都使用比較新的版本,默認jdk是1.6,而maven默悔毀團認還是1.4。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
對web子模塊的特別設置
web子模塊(web-demo)依賴它的日誌模塊logging-demo。設置pom.xml:
<dependency>
<groupId>com.easymorse.marshal</groupId>
<artifactId>logging-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
web子模塊在生成eclipse項目時,需要wtp支持,需要設置eclipse插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
</plugins>
</build>
生成Eclipse項目
在multi-moles-demo項目根目錄下:
mvn eclipse:eclipse
然後,通過eclipse的import項目導入,可發現兩個項目:
logging-demo
web-demo
都導入進來。導入可能會出現錯誤,主要是因為沒有設置maven的類路徑變數「M2_REPO」,可以設置這個類變數到maven的本地repository陌路即可。
如果要在eclipse中使用m2eclipse,需要使用:
mvn eclipse:m2eclipse
這樣就不需要設置M2_REPO類庫變數了。
接下來可以:
通過eclipse配置的tomcat運行web-demo;
通過maven的tomcat或者jetty插件運行web-demo(需要配置pom.xml文件);
為項目打包便於分發和部署。
9. 如何創建帶子模塊的Maven Web工程
當在Eclipse中創建Maven帶子模塊的Web工程時,對於新手經常會遇到無法部署Web站點的問題。下面就帶著大家走一遍帶子工程的Maven站點,順便講一下如何解決這個問題。
一、創建父工程
1、 創建Maven工程
首先,在Eclipse中新建一個Maven Project:
單擊「Next」,直到出現如下界面:
在這一步中,選中上面的「Create a simple project」復選框,然後單擊「Next」:
在上圖中,Group Id為組Id,也就是所有子模塊都公用的Id;Artifact Id是模塊Id,每個子模塊都有自己獨立的Artifact Id;Packaging一定要選擇「pom」,否則後面無法在它下面創建子模塊。
單擊「Finish」完成父工程創建。創建完畢後的工程如下圖所示:
二、創建web子模塊
接下來創建子模塊。
1、 創建web工程子模塊
首先創建web工程子模塊,在parent工程上單擊右鍵,選擇「New/Other」,打開如下所示窗口:
在該窗口中選擇「Maven Mole」,單擊「Next」:
在「Mole Name」中輸入「website」,單擊「Next」:
在該窗口的模板列表中選擇「maven-archetype-webapp」,單擊「Next」:
在該窗口中可根據需要修改version和Package(最好將Package改為「GroupId + Artifact Id」的格式,便於以後識別和管理),單擊「Finish」即可完成子模塊創建,如下圖所示:
2、 修改站點配置信息
對於新創建的站點,需要修改一下配合信息。打開website的Properties窗口,在「Java Build Path」下的Libraries選項卡中將J2SE的引用刪除,添加J2EE的引用,如下圖所示:
並將Java Compilier中的Java版本改為1.7:
然後切換到「Project Facets」節點,如下圖所示:
單擊右側的「Convert to faceted form…」,打開如下圖所示窗口:
在上圖中,選中「Project Facet」列表中的「Dynamic Web Mole」,先後單擊「Apply」按鈕和「OK」按鈕,完成工程類型轉換。
接下來創建組件包子模塊。
三、創建組件包子模塊
1、 創建組件包子模塊
同樣是在parent工程上單擊右鍵,新建Maven Mole,並在新彈出的窗口中輸入組件子模塊的名稱,如「component」,然後一直單擊next直到子模塊創建完畢。新創建的component子模塊結構如下圖所示:
2、 修改子模塊參數
與創建web子模塊類似,需要將component引用的Java版本改為JDK1.7。
3、 創建package
在component子模塊下創建名稱為「com.unitname.test.math」的package。
4、 創建類
在新創建的「com.unitname.test.math」package下新建名稱為「CCalculate」的class,並在裡面編寫方法,如下圖所示:
四、在web站點中調用組件
1、 引用組件包
打開website工程下的pom.xml,在裡面添加對component子模塊的引用,如下圖所示:
在上圖中,紅框圈住的部分即為需要增加的內容。其中,groupId和version節點中可以寫被引用的工程的對應內容,如果與本模塊相同,也可以像上圖中所示的使用「${project.groupId}」和「${project.version}」的方式。
2、 編寫servlet調用組件
在website模塊中創建一個名為「com.unitname.test.service」的package,並在下面新建一個名為matchservice的servlet,代碼如下圖所示:
此時代碼中會提示找不到javax.servlet包,可通過在站點中增加對servlet-api組件的引用:
也可通過在web站點的引用中添加對Server Runtime的引用的方式解決:
五、發布站點
1、 發布站點
將站點部署到tomcat中,並啟動。
2、 訪問servlet
在瀏覽器中輸入上面創建的servlet地址http://localhost:8080/website/mathservice?a=2&b=3,此時頁面出現如下錯誤:
Tomcat中也提示相同的錯誤:
此時還需要做一步操作:添加Deployment配置。
3、 添加DeploymentAssembly配置
在web子模塊上單擊右鍵,選擇「Properties」,在打開的窗口中選擇「Deployment Assembly」,如下圖所示:
在上圖中,打擊右側的「Add」按鈕,打開如下圖所示窗口:
在上圖所示窗口中選擇「Java Build Path Entries」,單擊「Next」:
在上圖中選擇「Maven Dependencies」,單擊「Finish」完成添加。
然後接著添加對Project的引用。在中選擇「Project」,單擊「Next」,打開如下圖所示窗口:
在上圖選擇要引用的工程component,單擊「Finish」完成添加。
重啟Tomcat,再次訪問該servlet,出現如下所示的正常結果