使用Eclipse-Maven-git作Java開發(9)--eclipse新建maven結構工程

        上一篇博客講了如何使用eclipse的maven工程新建嚮導新建maven工程,可是發現新建出來的工程並不可用,通過探索,使用eclipse的普通向導新建符合maven結構的工程而且轉換爲maven工程,這個方法的可操做性強得多,下面我就來演示一下如何操做。java

0、準備

        老樣子,eclipse要是正常工做的。web

一、目標

        先來一個符合maven項目結構要求的目錄結構,好明確知道咱們的目標是什麼,先來一個JavaSE的:spring

        而後是Java web的:shell

        紅線劃掉的就是原本就是「多餘」的。apache

        知道了目標結構,下面咱們就一步一步地來新建這些項目,先是Java SE,而後是Java Web.tomcat

二、使用嚮導新建符合maven結構的Java SE項目

        首先進入「新建項目」的嚮導對話框: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視圖中的效果是:

三、使用嚮導新建符合maven結構的Java Web項目

        進入新建項目的嚮導對話框,在項目類型選擇的對話框中輸入篩選條件「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項目轉換後就不存在這個問題了。

四、新建出來的項目向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!!!

相關文章
相關標籤/搜索