mavenWeb工程建立步驟

木叔發表於2016-04-26

1、File >> New >>other...,在New視窗中開啟Maven,選中Maven Project,Next。

2、在New Maven Project彈出視窗中去掉勾選Create a simple project,直接next。

3、在Filter中輸入 “web”找到如下圖中的選項,然後Next。注:此處quickstart選項即前面勾選Create a simple project建立的普通非mavenWeb專案,此處選webapp表示構建web專案。

 

4、填寫專案名稱資訊。此處實際只要填寫groupId和artifactId,packge名稱會自動生成,就是groupId和artifactId的合併。填寫完成後點選finish則建立成功。

groupId:group 翻譯成中文就是組、集團的意識,groupId就是這樣一個組或集團的ID標識,就拿 Apache 來說好了,Apache 大家都不陌生吧,Apache 官網上有非常多的專案,每個專案裡面肯定能找得到 org.apache.xxxx,而 org.apache 就是這裡說的 groupId

artifactId:還是拿 Apache 來說,Apache 官網上有非常多的專案,而每個專案的名字就是這裡的 artifactId,換句話說,artifactId 就是你的專案名

 

5、新建好後的專案如果出現jsp檔案的錯誤,一般是沒有引用正確的Tomcat包檔案。如圖:

6、專案上右鍵,選擇Properties,彈出如下視窗。選擇左側的選單Maven >> Project Facets,在右側選擇runtimes,勾選Apache tomcat,然後錄apply-->ok,則錯誤消除。

7、專案 >> 右鍵 >> Build Path >> New Source Folder,手動加入maven專案目錄,如src/main/java,src/test/java,src/test/resources等。完整的專案目錄圖如下:

8、此時將專案加入到tomcat即可訪問專案。訪問路徑localhost加埠號加專案名加檔名。如:http://localhost:8070/mavenlast/index.jsp。

注:tomcat埠號即啟動時出現的HTTP/1.1 on http-8070對應的號碼,此號碼也可在雙擊server時看到,如下圖:

9、maven的jetty啟動方式(jetty和tomcat啟動是兩種不同的啟動方式,效能特點不同,主流啟動是tomcat):

(1)專案右鍵-->Run as-->Maven build (Alt+Shift+X,M),出現如下對話方塊,

    main標籤下填寫goals:jetty:run,然後勾選Skip Tests選項,

    jre標籤下填寫VM argument:-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=384m

  點選apply-->run

(2)此時啟動會報錯,因為jetty啟動需要相應的啟動外掛。在pom.xml檔案中配置如下內容再啟動即可。注:jetty啟動訪問時埠號是pom檔案裡配置的埠號,如下檔案中配置的是8088;同時jetty啟動訪問時不用加專案名,不同專案識別都是通過埠號識別。如:http://localhost:8088/index.jsp。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>mavenlast</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>mavenlast Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <properties>
        <maven.jetty.plugin.version>6.1.23</maven.jetty.plugin.version>
        <maven.release.plugin>2.1</maven.release.plugin>
        <project.build.sourceEncoding>GBK</project.build.sourceEncoding>
        <project.reporting.outputEncoding>GBK</project.reporting.outputEncoding>
        <servlet.version>2.5</servlet.version>
        <spring.version>3.0.7.RELEASE</spring.version>
        <ibatis.version>2.3.4.726</ibatis.version>
        <freemarker.version>2.3.16</freemarker.version>
        <aspectj.version>1.6.9</aspectj.version>
        
        <slf4j.verison>1.6.1</slf4j.verison>
        <log4j.version>1.2.16</log4j.version>
        <!--Test Related-->
        <junit.version>4.8.2</junit.version>
        <quartz.version>1.8.4</quartz.version>
        <jacksonVersion>1.9.9</jacksonVersion>
        <!-- cache -->
        <xmemcached.version>1.3.5</xmemcached.version>
        <httpcomponents.version>4.2</httpcomponents.version>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>mavenlast</finalName>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${maven.jetty.plugin.version}</version>
            <configuration>
                <contextPath>/</contextPath>
                <scanIntervalSeconds>3</scanIntervalSeconds>
                <systemProperties>
                    <systemProperty>
                        <name>CONFIG_DIR_PATH</name>
                        <value>${basedir}/config/config</value>
                    </systemProperty>
                       <systemProperty>
                           <name>org.mortbay.util.URI.charset</name>
                           <value>GBK</value>
                       </systemProperty>
                </systemProperties>
                <stopPort>9911</stopPort>
                <stopKey>foo</stopKey>
                <connectors>
                    <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                        <port>8088</port>
                        <maxIdleTime>60000</maxIdleTime>
                    </connector>
                </connectors>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

 10、maven專案依賴包新增http://mvnrepository.com/

maven專案目錄含義:

src/main/java application library sources - java原始碼檔案
src/main/resources application library resources - 資源庫,會自動複製到classes資料夾下
src/main/filters resources filter files - 資源過濾檔案
src/main/assembly assembly descriptor - 元件的描述配置,如何打包
src/main/config configuration files - 配置檔案
src/main/webapp web application sources - web應用的目錄,WEB-INF,js,css等
src/main/bin 指令碼庫
src/test/java 單元測試java原始碼檔案
src/test/resources 測試需要的資源庫
src/test/filters 測試資源過濾庫
src/site 一些文件
target/ 存放專案構建後的檔案和目錄,jar包,war包,編譯的class檔案等;Maven構建時生成的
pom.xml 工程描述檔案
LICENSE.txt license
README.txt read me

相關文章