mvn 创建webapp项目

来源:互联网 发布:矩阵什么时候可以消去 编辑:程序博客网 时间:2024/05/16 10:43

出自:http://rocketa.iteye.com/blog/1356078



当eclips和maven都准备好了,下面就开始创建一个webapp项目(我的eclipse已经装上maven wtp插件)

 

创建项目

1、打开cmd,进入需要存放项目的目录,执行mvn archetype:create -DgroupId=net.rocketa -DartifactId=mywebapp -DarchetypeArtifactId=maven-archetype-webapp,执行以后项目就建立好了

2、打开eclipse,Import-->Maven-->Existing Maven Projects,把刚创建好的项目导进eclipse(如果没有安装maven wtp插件的话,可以在导入前用在项目目录下执行命令mvn -Dwtpversion=1.0 eclipse:eclipse,再用“General”-->“Existing Projects into Workspace”导入,不然eclipse不能识别为web项目导致不能放进tomcat运行)

3、新建一个tomcat并运行,打开浏览器访问一下,OK

 

目录结构修改

但这时我发现新的maven webapp的目录结构跟eclipse创建的Dynamic Web Project的结构有所不同,这点让我很不爽,所以我要做两件事:

a)把src/main/webapp目录挪到更目录去,并且把它改名为“WebRoot”

b)把存放java的源目录建好

1、把src/main/webapp剪切到根目录,并改名为WebRoot

2、新建目录src/main/java

3、因为结构已经不是webapp默认的结构了,所以要修改pom.xml告诉maven

Xml代码  收藏代码
  1. <build>  
  2.   <finalName>mywebapp</finalName>  
  3.   <directory>target</directory>  
  4.   <sourceDirectory>src/main/java</sourceDirectory>  
  5.   <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>  
  6.   <resources>  
  7.     <resource>  
  8.         <directory>src/main/resources</directory>  
  9.     </resource>  
  10.   </resources>  
  11.   <plugins>  
  12.     <plugin>  
  13.        <groupId>org.apache.maven.plugins</groupId>  
  14.        <artifactId>maven-war-plugin</artifactId>  
  15.        <version>2.0.2</version>  
  16.        <configuration>  
  17.          <!-- http://maven.apache.org/plugins/maven-war-plugin/ -->  
  18.          <warSourceDirectory>WebRoot</warSourceDirectory>  
  19.        </configuration>  
  20.      </plugin>  
  21.   </plugins>  
  22. </build>  
 

4、在eclipse中刷新项目,并右击-->Maven-->Update Project Configuration

5、如果你的项目发生一个“CHKJ3000E: WAR Validation Failed: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml”错误,你可以右击web.xml-->validate,OK,错误消失

6、放进tomcat运行,访问以下、OK

补充:因为wtp插件比较智能,如果没有装插件的朋友,还需要修改 项目目录/.settings/.component,把其中的<wb-resource deploy-path="/" source-path="src/main/webapp"/>改为<wb-resource deploy-path="/" source-path="WebRoot"/>,不然tomcat运行以后访问会有问题。

 

编写简单的Servlet

1、因为需要用到servlet的包,所以要添加依赖,有多种方法:

a)修改pom.xml,加入下面片段

Xml代码  收藏代码
  1. <dependency>  
  2.     <groupId>javax.servlet</groupId>  
  3.     <artifactId>servlet-api</artifactId>  
  4.     <version>2.4</version>  
  5.     <scope>provided</scope>  
  6. </dependency>  
  7. <dependency>  
  8.     <groupId>javax.servlet.jsp</groupId>  
  9.     <artifactId>jsp-api</artifactId>  
  10.     <version>2.1</version>  
  11.     <scope>provided</scope>  
  12. </dependency>  

  b)右击项目-->Maven-->Add Dependency-->查询servlet-api和jsp-api-->选择正确的包和版本-->Scope选择provided-->OK,这时pom.xml会被自动修改

 

2、在java目录下创建包net.rocketa和类MyServlet

Java代码  收藏代码
  1. package net.rocketa;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. public class MyServlet extends HttpServlet{  
  11.   
  12.     @Override  
  13.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  14.             throws ServletException, IOException {  
  15.     System.out.println("MyServlet printing...");  
  16.         super.doGet(req, resp);  
  17.     }  
  18.       
  19. }  

 3、修改web.xml,加入servlet配置

Xml代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>myservlet</servlet-name>  
  3.     <servlet-class>net.rocketa.MyServlet</servlet-class>  
  4. </servlet>  
  5. <servlet-mapping>  
  6.     <servlet-name>myservlet</servlet-name>  
  7.     <url-pattern>/myservlet</url-pattern>  
  8. </servlet-mapping>  
 

4、发布到tomcat,运行,访问http://localhost:8080/mywebapp/myservlet,页面报405(正常,没有设置返回页面嘛),后台输出MyServlet printing...,OK

0 0