maven新建項目的幾種方式和啟動


方式一:

第1步:轉到 New 菜單 Other.. -> Maven -> Maven Project ,然后單擊 Next 。如下圖所示 -

第2步:在New Maven Project向導中,選擇Create a simple project並指定項目保存的目錄(如:F:\worksp\Maven\webproject),然后單擊Next。如下圖所示 -

第3步: 在下一個向導中,添加項目信息,如下所示,然后單擊Finish。

 

第4步
打開pom.xml文件並在其中添加servlet依賴項和Tomcat maven插件,如下代碼所示:

<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>com.itcast</groupId>
  <artifactId>DemoMy</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </properties>

    <dependencies>
    <!-- Servlet API -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

      <!-- Embedded Apache Tomcat required for testing war -->

      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <configuration>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
    
  </build>
</project>

在更改pom.xml文件之后,更新maven web項目。- maven update/install

要更新web maven項目,請右鍵單擊項目名稱(如:webproject)-> Maven -> Update Project... 來更新項目。

第5步
查看maven web項目結構,如下圖所示 -

 

 

第6步
現在,創建一個包:com.yiibai.servlet,並在此包下創建一個HelloWorldServlet類,並在其中寫入以下代碼。文件:HelloWorldServlet.java -



package com.yiibai.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @author maxsu
*/
@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/plain");
resp.getWriter().write("Hello World! Maven Web Project Example.");
}
}

第7步
使用以下maven命令構建項目。

mvn clean install

要在Eclipse IDE中執行maven命令,請右鍵點擊項目名稱,打開Run菜單 -> Run Configuration..以創建新配置。

在運行配置向導中,雙擊Maven Build並提供配置信息(Name,Base directory和Goals),如下圖所示。

然后點擊運行(Run)並在控制台中輸出結果如下 -

 


第8步
使用以下命令運行嵌入式tomcat服務器。

mvn tomcat7:run

要在Eclipse IDE中執行maven命令,請創建一個新的配置,如下圖所示 -

 


現在運行配置啟動tomcat服務器。 控制台輸出如下圖所示 -

 


第9步
打開瀏覽器並在地址欄中輸入URL: http://localhost:8080/hello ,得到以下結果 -

方式二:

 

構建Maven項目的完整過程--普通web項目(Eclipse)

 進行以下步驟的前提是你已經安裝好本地maven庫和eclipse中的maven插件了(有的eclipse中已經集成了maven插件)

一、Maven項目的新建

1、鼠標右鍵---->New----->Other...

2、直接點擊下一步

3、選中 maven-archetype-webapp 后點擊下一步

4、 Group Id 中輸入項目的基本包名。

      Artifact Id 中輸入項目名。

      Version 中的值默認就行,不進行選擇。

      Package 中寫的是默認生成的一個包名,不寫也可以。

   接着點擊完成就可以了。

 

5、創建好項目后結構如下:

  ------web.xml 的版本是2.3的,是老版本

  ------新生成的工程默認的 jdk 和 compiler 都是1.5 的

  ------而且沒有src/main/java 這樣結構的 maven 目錄

二、Maven項目的配置

1、修改web.xml

由於Maven中的 maven-archetype-webapp 樣板項目的 web.xml 是2.3版本的,我們需要替換成新版本:

可以在Eclipse中新建一個web工程,將它 WebContent/WEB-INF 目錄下的 web.xml 文件復制替換掉我們的 Maven 項目中 src/main/webapp/WEB-INF/ 目錄下的web.xml 文件。

原來的web.xml內容

復制代碼
復制代碼
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
復制代碼
復制代碼

替換后的web.xml內容

復制代碼
復制代碼
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
         id="WebApp_ID" version="3.1">
  <display-name>mydemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
復制代碼
復制代碼

2、pom.xml 里面build 標簽下添加 maven編譯插件

復制代碼
復制代碼
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
復制代碼
復制代碼

 3、添加缺少的目錄並指定輸出路徑

Maven規定,必須創建以下幾個包,並且分別對應相應的輸出路徑

  src/main/resources

  src/main/java

  src/test/resources

  src/test/java

右鍵項目----->BUild Path----->Configure Build Path...

(1)在Order and Export (這里是控制項目中包的顯示順序的)這個欄里會發現有幾個目錄顯示missing(丟失),隨便選中一個改變下順序(Up 或者 Down 或者 Top 或者 Bottom),然后點擊應用,OK,丟失的目錄會在項目中顯示出來,再次進到這個地方,紅叉標識已經消失了。(這一步比較奇怪,可能是eclipse中maven插件的bug吧)

(2)接着在Source里會發現已經有三個目錄了,所以點擊Add Folder... 添加缺少的目錄(這里注意把Allow output folders for source folders 上,方便下一步進行輸出路徑的設置)

點擊Create New Folder... ,輸入缺少的包名,直接點擊完成,回到這個界面點擊OK就行

(3)接着就會看到Source這里多了一個剛才添加的包,這個新加的包沒有指定輸出目錄,需要進行修改

在Source 里面設定4個文件夾的輸出Output folder,雙擊進行修改

分別修改輸出路徑為

/src/main/resources  對應  target/classes

/src/main/java           對應  target/classes

/src/test/resources      對應  target/test-classes

/src/test/java             對應  target/test-classes

我這只需要修改第四個目錄就可以了(前三個都默認設置好了,如果你的沒設置好就設置一下)

 最終的效果如下圖所示:

此時的目錄結構為:

可以看出已經是maven項目的結構了(這里有報錯,報的是Cannot change version of project facet Dynamic Web Module to 3.1,先不管,最后再處理)

4、配置項目部署程序集(Web Deployment Assembly)

右鍵項目----->Properties----->Deployment Assembly

(1)刪除test的兩項,因為test是測試使用,並不需要部署。

(2)添加Maven依賴,設置將Maven的jar包發布到lib下,如果已經有了就不需要添加了。 
    Add -----> Java Build Path Entries -----> Maven Dependencies -----> Finish

最終是這樣的

三、將Maven項目轉換成Dynamic Web Project

(1)右鍵項目----->Properties

在左側選擇 Project Facets,單擊右側的 Convert faceted from 

剛進來時是這樣的,需要把Dynamic Web Module (動態web模塊)的版本修改為 3.1 (最新版),Java的版本修改為項目用的1.8

這里可能會報一個錯誤,在修改動態web模塊版本的時候會提示Cannot change version of project facet Dynamic Web Module to 3.1

不要緊,只需要去掉動態web模塊前面的對勾,點擊OK,接着再進入這個界面就能夠修改動態web模塊的版本了。

修改完成是這樣的,接下來單擊 Further Configuration available... (進一步可用的配置)鏈接

下面如果沒有顯示出 Further Configuration available... 的話,可以在Dynamic Web Module 前去掉打鈎,點擊應用,然后再填上鈎,再點擊應用,一般 Further Configuration available... 就會出現了。

修改 Content directory(內容目錄) 的值 WebContent 為 src/main/webapp ,單擊OK,然后回到上一步窗口直接點擊OK

這里可能出現的問題是,會給你個提示目錄錯誤的彈窗,不要緊,你可以檢查下之前文件輸出路徑的設置是否有問題(Java Build Path -----> Source),修改過來應該就沒問題了

完成這一步之后你可以檢查下你的Java Build Path 中的Libraries 中的jdk版本,還有Java Compiler (編譯環境),發現都已經改為1.8版本了。

(2)接下來你項目中的pom.xml 可能報一個錯 web.xml is missing and <failOnMissingWebXml> is set to true ,如果沒報錯,可以忽略不看

解決辦法:

使用maven創建項目有時在pom.xml的war處出現failOnMissingWebXml的錯誤,根據pom.xml 可以知道這個項目是web項目,打包時打成war包。

錯誤提示的是丟失web.xml,所以如果項目里沒有web.xml,則在項目里添加一個web.xml,刷新一下項目,就應該沒有錯誤了。

如果還有錯的話就需要在eclispe上方點擊Project ----->Clean 清理一下這個項目了。

經過這兩步錯誤就應該已經清除了。

(3)到這一步,web項目就創建完畢了,可以看一下你的項目結構,如果有什么build目錄,WebContent 目錄的話可以直接刪除(確保你的輸出目錄之類的已經設置好了)

直接把頁面資源放置在src/main/webapp/ 目錄下,所以最終的項目結構如下所示:

基本上清除未知錯誤的方法是:

1、右鍵項目----->Run As----->Maven clean

2、Project----->Clean...

3、右鍵項目----->Maven----->Update Project...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM