Maven Web項目 Tomcat安裝與配置 Maven 基本操作

1、Web項目創建 官方文檔

cmd進入web項目工作空間,執行以下代碼:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

 構建成功.實際目錄結構如下:

project
|-- pom.xml
`-- src
    `-- main
        `-- webapp
            |-- WEB-INF
            |   `-- web.xml
            `-- index.jsp

這裏注意和java項目的幾個區別:沒有test項目、沒有在主項目源碼下面建立指定的包結構層次.

 

2、pom.xml

生成的xml內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<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>webgroupid.g</groupId>
  <artifactId>webartifactId</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>

  <name>webartifactId Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

和java項目相比,定位jar包的參數是一樣的,區別是打包方式web項目是war包

注:這裏刪除了build節點

 

3、構建測試代碼

在main文件夾下建立package目錄

\main\java\webpackage\w,在此目錄下新增TestServlet.java類,代碼如下:

package webpackage.w;
    
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
    
public class TestServlet extends HttpServlet{
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("maven web test");
    }
}

修改web.xml註冊Servlet,代碼如下:

<!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>
  <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>webpackage.w.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>
</web-app>

修改index.jsp,添加訪問Servlet的代碼

<html>
<body>
<a href="TestServlet">訪問TestServlet</a>
</body>
</html>

 

4、添加servlet-api依賴

使用HttpServlet需要引入servlet-api的包

首先進入https://mvnrepository.com/倉庫,搜索servlet-api

 點擊進入,選擇一個符合要求的版本,點擊進入

 修改pom.xml,將上圖的dependency內容拷貝紙pom.xml,添加依賴

<?xml version="1.0" encoding="UTF-8"?>

<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>webgroupid.g</groupId>
  <artifactId>webartifactId</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>

  <name>webartifactId Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>
  </dependencies>
</project>

 

5、編譯項目

cmd進入pom.xml所在的目錄執行以下代碼:

mvn compile

 構建成功,這裏去阿里雲maven倉庫下載了javax.servlet-api-4.0.1.jar包.

 

6、打包編譯成功的web項目

 cmd進入pom.xml所在的目錄執行以下代碼:

mvn clean package

 生成成功,並給出了war包的地址.

 

7、部署war包到tomcat

部署前確保tomcat安裝配置成功,具體參考Tomcat安裝與配置,6中生成war包的時候同時會生成發佈目錄

 在tomcat中部署war包,會將war解壓成目錄,所以這裏直接將webartifactId-1.0.0目錄複製到tomcat目錄下的webapps目錄下

 這裏將webartifactId-1.0.0改爲test(這裏前目錄名太多冗長),接着運行tomcat下的bin目錄下中的startup.bat

 到這裏部署工作完成,這裏注意8080端口的佔用,這裏tomcat默認使用8080端口.

接着瀏覽器輸入http://localhost:8080/test/index.jsp

 說明網站部署成功,點擊超鏈接訪問Serlvet

 Serlvet訪問成功

 

8、web項目添加外部Java項目依賴

 這裏以測試項目爲例,現在本地Maven倉庫中有一個testartifactid項目,其目錄結構如下:

\maven-repository\testgroupid\testartifactid\1.0.0\testartifactid-1.0.0.jar

項目內容如下:testartifactid-1.0.0.jar\testpackage\a\b

 Computer.class就是要測試的目標類

注:如果不知道如何通過Maven生成Java項目包,參考Maven 基本操作

接下去就在web項目中添加依賴項和相關配置,修改pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<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>webgroupid.g</groupId>
  <artifactId>webartifactId</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>

  <name>webartifactId Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>testgroupid</groupId>
    <artifactId>testartifactid</artifactId>
    <version>1.0.0</version>
</dependency>
  </dependencies>
</project>

這裏注意testgroupid和junit的依賴,記者構建測試項目,構建如下目錄\src\test\java\webpackage\w

\webpackage\w是創建web項目時指定的包路徑,接着創建測試類,代碼如下:

package webpackage.w;

import org.junit.Test;
import testpackage.a.b.Computer;

public class ComputerTest{

    @Test
    public void test1(){

        Computer computer = new Computer();

        int result = computer.add(1,2);

        org.junit.Assert.assertEquals(3, result);

    }

}

接着cmd進入pom.xml所在的目錄,執行以下代碼:

mvn clean test

 這裏說明web項目添加外部測試項目成功.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章