使用MAVEN完成web应用的创建,部署,运行。
1、使用maven-archetype-webapp插件创建应用
cmd下进入一个文件目录:
执行mvn命令:
mvn archetype:generate -DgroupId=com.zyc.app -DartifactId=firstapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
命令行解析:mvn archetype:generate表示创建项目原型;-D表示传入的系统属性,相当于传参,比如-DgroupId=com.zyc.app表示定义groupId的属性为com.zyc.app;archetypeArtifactId表示所调用的模板创建插件;interactiveMode表示是否使用交互模式(关于这一点我不太清楚,因此特别做了后面的实验,见文章后面)。
2、项目解析
生成如下项目架构
firstapp包含 src 文件夹和 pom.xml 文件。
src/main/webapp包含 index.jsp 文件和 WEB-INF 文件夹。
src/main/resources包含图片、properties资源文件。
其中, 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zyc.app</groupId>
<artifactId>firstapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>firstapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>firstapp</finalName>
</build>
</project>
src/main/webapp下的index.jsp内容如下:
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
src/main/webapp/WEB-INF下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>
其他文件夹为空。
3、构建项目
进入firstapp目录下,执行:
F:\demo>cd F:\demo\firstapp
F:\demo\firstapp>mvn clean package
在firstapp\target文件夹下找到firstapp.war文件。
4、部署及运行
把firstapp.war复制到tomcat服务器下的webapps中。启动tomcat,输入一下url:
http://localhost:8080//firstapp/index.jsp
运行成功:
interactiveMode实验
1、interactiveMode=false情况:
执行:
mvn archetype:generate -DgroupId=com.zyc.app -DartifactId=firstapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
不需要任何输入,项目直接构建完成。
2、interactiveMode=true情况(或默认情况):
执行:
mvn archetype:generate -DgroupId=com.zyc.app -DartifactId=firstapp01 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=true
需要有两处在操作台进行输入的情况: