Maven學習 七 Maven項目創建(2)war項目
阿新 • • 發佈:2018-10-28
image strong 服務 2.3 artifact cat tomcat7 web-inf mls
一、web項目的目錄結構
如果手動創建一個java web項目,其基本的目錄結構包括:METE-INF,WEB-INF,以及WEB-INF下必須包含一個web.xml文件
二、使用Maven創建war項目
(一) 創建maven project時選擇packaging為war
(二)在webapp文件夾下新建META-INF和WEB-INF/web.xml
剛創建的項目發現會報錯,因為此時的項目沒有web項目的目錄結構,需要創建一些文件夾和文件,形成web的目錄結構,在main/webapp下面創建META-INF,WEB-INF文件夾,並在WEB-INF目錄下創建web.xml
創建web目錄結構後
(三)加入web項目基本的三個依賴包,javax.servlet,javax.servlet.jsp,javax.servlet.jsp.jstl
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
</dependencies>
至此我們搭建的maven項目,如果在本地的tomcat上運行已經沒有問題了
三、maven的web項目在tomcat插件上運行
(一)、在pom.xml的根標簽下配置tomcat插件
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制tomcat端口號 --> <port>80</port> <!-- 項目發布到tomcat後的名稱 --> <!-- / 相當於把項目發布名稱為ROOT --> <!-- /abc --> <path>/</path> </configuration> </plugin> </plugins> </pluginManagement> </build>
(二)為依賴的servlet,jsp包限定作用範圍,
在<dependecy>標簽下有一個<scope>標簽,用來限定這個包起作用的範圍,設置成provided
因為使用了tomcat插件,所以在tomcat插件中也有servlet,jsp等包,因此會和pom.xml中配置的依賴的包在運行時沖突,會報錯。那麽此時把pom.xml中的配置的包做一個範圍限定,值讓其在編譯器起作用。
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency>
(三)、右鍵項目--> run as --> maven build-->Goals 中輸入 clean tomcat7:run
clean和使用本地tomcat中,右擊tomcat服務器-->clean一樣
在運行tomcat7:run時,7一定要帶上,不然會運行tomcat6
(四)、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>com.mavenTest</groupId> <artifactId>wabPro</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制tomcat端口號 --> <port>80</port> <!-- 項目發布到tomcat後的名稱 --> <!-- / 相當於把項目發布名稱為ROOT --> <!-- /abc --> <path>/</path> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
Maven學習 七 Maven項目創建(2)war項目