maven创建webapp

2024-06-22 13:58
文章标签 maven 创建 webapp

本文主要是介绍maven创建webapp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:http://limingnihao.iteye.com/blog/830409

 

使用Eclipse构建Maven的SpringMVC项目

          首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e。         用MyEclipse安装Maven插件,建出的Maven项目有些问题。一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。要么真不在WEB-INF生成classes了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。         用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。         将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。

一、直接建立Maven项目方法

1、建立Maven项目

        接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:
1.1 选择建立Maven Project
选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击newxt。

 
 
1.2 选择项目路径
Use default Workspace location默认工作空间。

 
 
1.3 选择项目类型
在Artifact Id中选择maven-archetype-webapp    
1.4 输入Group ID和 Artifact ID,以及Package
Group ID一般写大项目名称。Artifact ID是子项目名称。 例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。 Package是默认给你建一个包,不写也可以。    
1.5 刚建立好后的文件结构如下图
  如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。    

2、配置Maven项目

接下来就需要更改好多配置了。  
2.1 添加Source文件夹
接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder, 建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。    
2.2 更改class路径
右键项目,Java Build Path -> Source 下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。   双击每个文件夹的Output folder,选择路径。 src/main/java,src/main/resources,选择target/classes; src/test/java ,src/test/resources, 选择target/test-classes;   选上Allow output folders for source folders.     在此处还要更改: 更改文件夹显示的顺序:点击Order and Export。 更改JDK版本:在Libraries双击JRE System Library,要1.6版本。  
2.3 把项目变成Dynamic Web项目
 
2.3.1 右键项目,选择Project Facets,点击Convert to faceted from
 
2.3.2 配置Project Facets
  更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。 如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。    
2.3.3 配置 Modify Faceted Project
点击Further configuration available…,弹出Modify Faceted Project窗口 此处是设置web.xml文件的路径,我们输入src/main/webapp。 Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。    

2.4 设置部署程序集(Web Deployment Assembly)

  上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:     此处列表是,部署项目时,文件发布的路径。 1,我们删除test的两项,因为test是测试使用,并不需要部署。 2,设置将Maven的jar包发布到lib下。 Add -> Java Build Path Entries -> Maven Dependencies -> Finish 设置完成效果图          

3、向maven项目中添加jar包

maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。  

3.1 在pom.xml中添加所需要的jar包

使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。

3.2设置jar包的scope

  当添加进入一个jar包后,有一些属性需要设置,最重要的就是scope,它有以下几种取值: 1.         compile,缺省值,适用于所有阶段,会随着项目一起发布。 2.         provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 3.         runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 4.         test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 5.         system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。     通常SpringMVC项目所需要配置scope的jar包如下图:   有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。 Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。      

4、构建SpringMVC框架

 

4.1 编辑web.xml文件

  需要添加log4j,字符过滤,Spring 的dispatcher等。 webx.xml代码如下:   Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  1. <web-app xmlns="http://java.sun.com/xml/ns/javaee"   
  1.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  1.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  1.                              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
  1.          version="2.5" >  
  1.       
  1.     <!-- 区分项目名称,防止默认重名 -->  
  1.     <context-param>  
  1.         <param-name>webAppRootKey</param-name>  
  1.         <param-value>maven.example.root</param-value>  
  1.     </context-param>  
  1.   
  1.     <!-- Spring的log4j监听器 -->  
  1.     <listener>  
  1.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  1.     </listener>  
  1.   
  1.     <!-- 字符集 过滤器  -->  
  1.     <filter>  
  1.         <filter-name>CharacterEncodingFilter</filter-name>  
  1.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  1.         <init-param>  
  1.             <param-name>encoding</param-name>  
  1.             <param-value>UTF-8</param-value>  
  1.         </init-param>  
  1.         <init-param>  
  1.             <param-name>forceEncoding</param-name>  
  1.             <param-value>true</param-value>  
  1.         </init-param>  
  1.     </filter>  
  1.     <filter-mapping>  
  1.         <filter-name>CharacterEncodingFilter</filter-name>  
  1.         <url-pattern>/*</url-pattern>  
  1.     </filter-mapping>  
  1.   
  1.     <!-- Spring view分发器 -->  
  1.     <servlet>  
  1.         <servlet-name>dispatcher</servlet-name>  
  1.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  1.         <init-param>  
  1.             <param-name>contextConfigLocation</param-name>  
  1.             <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>  
  1.         </init-param>  
  1.         <load-on-startup>1</load-on-startup>  
  1.     </servlet>  
  1.     <servlet-mapping>  
  1.         <servlet-name>dispatcher</servlet-name>  
  1.         <url-pattern>*.do</url-pattern>  
  1.     </servlet-mapping>  
  1.   
  1. </web-app>  
   

4.2 编写Spring配置文件dispatcher-servlet.xml

  如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:   Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  1. <beans xmlns="http://www.springframework.org/schema/beans"   
  1.        xmlns:aop="http://www.springframework.org/schema/aop"   
  1.        xmlns:context="http://www.springframework.org/schema/context"  
  1.        xmlns:mvc="http://www.springframework.org/schema/mvc"   
  1.        xmlns:tx="http://www.springframework.org/schema/tx"   
  1.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  1.        xsi:schemaLocation="http://www.springframework.org/schema/aop   
  1.         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
  1.         http://www.springframework.org/schema/beans   
  1.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
  1.         http://www.springframework.org/schema/context   
  1.         http://www.springframework.org/schema/context/spring-context-3.0.xsd   
  1.         http://www.springframework.org/schema/mvc   
  1.         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd   
  1.         http://www.springframework.org/schema/tx   
  1.         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  1.   
  1.     <mvc:annotation-driven />  
  1.     <context:component-scan base-package="liming.maven.example" />  
  1.   
  1.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  1.         <property name="prefix" value="/WEB-INF/views/" />  
  1.         <property name="suffix" value=".jsp" />  
  1.     </bean>  
  1.   
  1. </beans>  
       

4.3 编写一个Controller层测试类

  编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:   Java代码  收藏代码
  1. package liming.maven.example.view;  
  1.   
  1. import org.springframework.stereotype.Controller;  
  1. import org.springframework.ui.Model;  
  1. import org.springframework.web.bind.annotation.RequestMapping;  
  1.   
  1. @Controller  
  1. public class GeneralController {  
  1.   
  1.     @RequestMapping(value="index.do")  
  1.     public void index_jsp(Model model){  
  1.         model.addAttribute("liming", "黎明你好");  
  1.         System.out.println("index.jsp");  
  1.     }  
  1. }  
       

4.4 编写index.jsp页面

首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。 在views下建index.jsp文件 我们使用jstl获取Controlleradd的数据。 Jsp页面代码如下:   Html代码  收藏代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  1. <html>  
  1.     <head>  
  1.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  1.         <title>Insert title here</title>  
  1.     </head>  
  1.       
  1.     <body>  
  1.         <c:out value="${liming}"></c:out>  
  1.     </body>  
  1. </html>  
       

5,发布到tomcat

这个就没啥说的了。 Eclipse下Tomcat常用设置:http://limingnihao.iteye.com/admin/blogs/825394    

6,测试

访问地址:http://localhost:8080/liming.maven.example/index.do 访问的结果来个截图:    

二、建立Dynamic Web project转成Maven项目方法

7、第二种方法DynamicWeb项目转成Mavan

7.1 新建Dynamic Web Project

依次选择选择File -> New -> Other。在New窗口中选择Web下的Dynamic Web Project。点击next。  

7.2 配置项目信息

7.2.1 输入项目信息
首先输入项目名称。 Target runtime 一般选择使用什么容器,tomcat之类的。可以先不选。 Dynamic web module version。就是版本号。选择2.5(3.0是Java7的)。 Configuration 是选择容易的配置。如果Target runtime选择了tomcat。这里对应也是选择tomcat。 Next。
7.2.2 配置source和output的folder
此窗口输入需要建立的Source folders。和默认output folder。 这个我们的Source folders等建立完项目后在添加。 output folder可以顺手改成target/classes。  
7.2.3 配置web.xml文件的路径
 

  7.3 转成maven项目

Dynamic web项目建立完后,首先将其转成maven项目。 右键此项目,选择maven -> Enable Dependency Management。弹出的窗口,直接finish就可以了。  

7.4 其他配置

接下来的配置工作就和前面的基本一样了。 请参考上面。 2.1添加Source文件夹 2.2更改class路径。 2.3.3 配置 Modify Faceted Project 2.4 设置部署程序集(Web Deployment Assembly)   接着就是构建SpringMVC框架,发布到tomcat,测试。  
  • liming.maven.example.zip (15.9 KB)
  • liming.dynamic.example.zip (14.9 KB)

这篇关于maven创建webapp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084487

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06