上一篇博客講了如何使用eclipse的maven工程新建嚮導新建maven工程,可是發現新建出來的工程並不可用,通過探索,使用eclipse的普通向導新建符合maven結構的工程而且轉換爲maven工程,這個方法的可操做性強得多,下面我就來演示一下如何操做。java
老樣子,eclipse要是正常工做的。web
先來一個符合maven項目結構要求的目錄結構,好明確知道咱們的目標是什麼,先來一個JavaSE的:spring
而後是Java web的:shell
紅線劃掉的就是原本就是「多餘」的。apache
知道了目標結構,下面咱們就一步一步地來新建這些項目,先是Java SE,而後是Java Web.tomcat
首先進入「新建項目」的嚮導對話框:app
按照圖中的說明,選擇"Java Project",進入新建Java SE項目的嚮導,輸入名字,點擊「下一步」便可,eclipse
在進入的頁面中,就是關鍵了,能夠看出,如今的「Source Folder」和"Output Folder"都和預期的不同,webapp
因此說,要改!maven
修改的方法很簡單,首先去除src目錄的源代碼目錄屬性,而後新添加自定義的目錄到源代碼目錄列表中:
咱們要添加的源代碼目錄有:
src/main/java src/main/resources src/test/java src/test/resources
按照順序將目錄都添加好便可。
修改以後的效果以下圖:
能夠看到,「Source Folder」已經知足目標要求,可是「Output Folder」仍是不知足的,咱們須要對照着修改成
<basedir>/target/classes
也就是
而後直接點擊「完成」就好了。
最後在project視圖中的效果是:
進入新建項目的嚮導對話框,在項目類型選擇的對話框中輸入篩選條件「web」,選擇「Dynamic Web Project」:
在下一步中,輸入項目名稱,在「Target Runtime」那裏有可能會關聯上tomcat,可是請選擇爲「None」,其餘的默認便可,點擊「下一步」:
和新建Java SE項目相似,這裏也須要修改"Source Folder",只不過對話礦的樣子變了,可是要作的事沒有變。
在這裏「Source Folder」的設置都是同樣的,可是「output Folder」就有點不同了,默認的是「build\classes」,也就是說這個路徑是基於項目的了,路徑裏面就沒有包含項目名了,咱們須要將其修改成:
target/classes
到這裏可不能點擊「完成」,還有些設置項須要設置,點擊進入「下一步」,
默認的「Content directory」是一個叫作「WebContent」的目錄,這個就是web資源的根目錄,全部的web資源的起始目錄就是這個目錄,顯然這個目錄不是咱們想要的,咱們須要修改成:
src/main/webapp
同時也把生成"web.xml"文件的選項勾選上,雖然如今支持免配置,可是實際上對於像spring這樣的項目開發仍是很須要web.xml文件的。以後點擊「完成」就能夠了。
項目在「project exploer」視圖中的效果是:
你們要注意,直接這樣的話,web根目錄(圈起來那裏)「藏」得比較深,實際操做起來是有困難的,可是接下來將其往maven項目轉換後就不存在這個問題了。
到目前爲止,新建出來的兩個項目都仍是普通的項目,並且那個web項目的web資源編輯起來還不是特別方便,世紀鐘確定不會就這樣完了的,接下來咱們須要將其轉換爲maven項目。
轉換的方法很簡單,eclipse已經內置的了,兩個項目的轉換方法同樣,都是:項目上右鍵 -> Configure -> convert to maven project,
而後會有一個彈出框,要求填寫項目的座標什麼的,能夠默認,可是最好填寫一下,
要注意「package」的選擇,SE項目選擇jar,web項目選擇war。
對於Java SE項目來講,轉換爲maven項目以後不會有太明顯的視覺變化,因此就不截圖了,可是對於Java Web項目來講,肉眼可辨的變化就有點大了,截圖一張:
項目的library直接由maven接管(java se項目也是同樣,可是因爲原先只有jre,因此看上去變化不是很大),web根目錄裏也有了一個「deployd resources」的節點,其實它只是一個映射罷了,裏面 的webapp仍是原來的webapp,還有就是pom.xml文件,這個即是maven項目最關鍵的文件了,轉換爲maven項目後會自動新建這個文件,裏面的信息就是這個項目的所有配置信息(其實還有一些是默認的,並無配置在這個文件裏面)。
查看pom.xml文件:
java se項目的pom.xml:
<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>cn.songxinqiang</groupId> <artifactId>tmjse</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source /> <target /> </configuration> </plugin> </plugins> </build> </project>
Java web項目的pom.xml:
<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>cn.songxinqiang</groupId> <artifactId>tmjee</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
能夠看出來,二者實際上是差很少的,只是「packaging」不同,而後對應着war包添加了一個對應的編譯插件,對於這些配置的說明,能夠查看Apache maven項目的官方說明,本文就不說了,之後有時間再說。
本文介紹了,如何經過eclipse新建項目嚮導新建符合maven項目結構的Java SE 項目和 Java Web項目,而且轉換爲maven項目,這種方式比使用eclipse自帶的maven項目新建嚮導新建出來的項目要好,至少結構是符合了要求的,可是這種方法也不是最簡單最好用的方法,之後的文章中將會介紹一種(我本身認爲)「最佳」的方法。
下一篇將介紹將不符合maven結構的Java SE 和Java Web工程轉換爲maven工程,以及分析轉換的結果。
enjoy!!!