[技术] 用 Maven 搭建多项目 Project

在平时的Java web项目开发中为了便于后期的维护,我们一般会进行分模块开发,每个模块都对应着一个pom.xml。它们之间通过继承和聚合相互关联。这样各层之间的职责会比较明确,也方便后期的维护。

今天我们是使用 Maven 来构建以上的各个层。

文字内容只涉及工程搭建的基本流程,请主要参照文章末尾的源代码。

项目目录:
mavenweb-parent
  |----pom.xml
mavenweb-service
  |----pom.xml
mavenweb-web
  |----pom.xml

创建主模块:mavenweb-parent

  • 在 Eclipse 中新建工程:
    New -> Other -> Maven Project -> 填写配置信息 -> Finish
[技术] 用 Maven 搭建多项目 Project_第1张图片
Mavenweb Parent New Proj.png
  • 在 Eclipse 中,设置 目标JDK 版本:
    在工程中,点击右键 -> Build Path -> Configure Build Path -> Java Build Path -> 在 Libraries 选项卡中选择 JDK1.7 或以上版本
[技术] 用 Maven 搭建多项目 Project_第2张图片
Mavenweb Parent JDK Setting.png
  • 在硬盘上,删除 src 文件夹;并在 Eclpse 中刷新该工程。


    [技术] 用 Maven 搭建多项目 Project_第3张图片
    Mavenweb Parent Delete Folders.png
  • 设置 pom 文件:
    务必设置 packaging 为 pom


    ...
    pom
    
    
        3.1.1.RELEASE
        4.10
    
    
    
        
            
            
                junit
                junit
                ${junitversion}
                test
            
            ...         
    

创建子模块:mavenweb-server

  • 使用类似的方式创建 maven 工程
  • 修改 pom:
    设置 packaging 为 jar,并添加 parent 与 dependencies 节点。

    ...
    jar
    
    
        ...
        ../mavenweb-parent/pom.xml
    
    ...

  • 添加 spring 配置
    设置 component-scan 以便令代码中注解能被读取与解析,并使用 propertyConfigurer 读取配置文件。

    
    
    
    
        
            file:/.../configInfo.properties
        
    
    
    
    
    
    
        
    

创建子模块:mavenweb-client

  • 首先,同样使用类似的方式创建 maven 工程,但与 Server 工程相比多了以下几部
  • 转换项目类型
    项目右键 -> properties -> Project Facets -> 勾选 Dynamic Web Module 和 Java -> OK
[技术] 用 Maven 搭建多项目 Project_第4张图片
Mavenweb Client Proj Facets Setting.png
  • 修正编译设置与输出目录
    项目右键 -> properties -> Deployment Assembly,如下图设置:


    [技术] 用 Maven 搭建多项目 Project_第5张图片
    Mavenweb Client Deployment Assembly Setting.png
  • 设置 JDK 1.8

  • 设置 web.xml
    因为我们的 url 会使用 restful 风格,所以需要改变两个文件:1) 在web.xml中,修改 servlet-mapping;2) 在client-spring-mvc.xml中,添加

web.xml:


...

    appServlet
    
    
    
    /login

...

client-spring-mvc.xml:


    ...
    
    
    
    ...

项目 mavenweb-client 中的表单验证:

  • pom.xml 中添加 hibernate-validator.jar

    
      org.hibernate
      hibernate-validator
      4.3.1.Final
   
  • 在 UserVo.java 中添加验证条件
@NotEmpty(message = "用户名不能为空")
private String name;
    
@Size(min=6 ,max= 20 ,message = "密码长度不符合标准")
private String pwd;
  • 修正 Controller
public class UserController {
    @RequestMapping(value="/login", method = {RequestMethod.GET})
    public String test(Model model) {
        if(!model.containsAttribute("userVo")){
            model.addAttribute("userVo", new UserVo());
        }
        return "login";
    }
    
    @RequestMapping(value="/login", method = {RequestMethod.POST})
    public ModelAndView test(ModelMap model, @Valid @ModelAttribute("userVo") UserVo userVo, BindingResult result) 
            throws NoSuchAlgorithmException {
        MsgVo msgVo = new MsgVo();
        msgVo.setMsg("Hi " + userVo.getName() + ", " + helloService.sayHello());
        
        if (result.hasErrors()) {
            return new ModelAndView("/login", null);
        }
        model.addAttribute("msgVo", msgVo);
        
        return new ModelAndView("/login_success", model);
    }
} 

再次配置 mavenweb-parent 项目

在 pom 文件中,添加两个子模块:


    ../mavenweb-client
    ../mavenweb-server

至此,工程基本设置完毕了。

编译

使用命令行:

cd ../mavenweb-proj/
mvn clean install -DskipTests=true

运行

可以使用命令把 war 包发布到 tomcat 中,并启动 tomcat 服务;或直接在 Eclipse 中运行。
为节省篇幅,这里只介绍后者;命令行的启动则会放到下一篇博文中讨论,

在 Eclipse 中运行:

  • 编译后,刷新 Eclipse 工程
  • 右键点击工程 -> Run as -> Run on Server -> 选择 Tomcat 9.0(注意 Tomcat 与 JDK 的兼容性问题)
  • 浏览器中输入:http://localhost:8080/mavenweb-client/
[技术] 用 Maven 搭建多项目 Project_第6张图片
Login.png
[技术] 用 Maven 搭建多项目 Project_第7张图片
Login Validation.png
[技术] 用 Maven 搭建多项目 Project_第8张图片
Login Success.png

完整源码下载:

请移步到百度网盘下载源码,并导入到 Eclipse 中。下载地址:
https://pan.baidu.com/s/1pLo0Ynx

下一篇预告

在本文基础上,添加并完善一些 web 项目的基本功能,包括:

  • 完善 Login 页面,添加 css 与 js 事件。
  • 添加日志功能及 hibernate 模块。

P.S. 如有介绍不准确之处或者在运行源代码遇到问题,请在请留下您评论留言。您的鼓励永远是我前进的动力。

参考资料

  • 如何使用 Maven:
    http://www.cnblogs.com/leiOOlei/p/3359561.html
  • 如何搭建 Maven Web 工程:
    http://www.cnblogs.com/leiOOlei/p/3361633.html
  • Maven 依赖管理详解:
    http://blog.csdn.net/liutengteng130/article/details/46991829
  • Spring MVC 表单验证详解:
    http://blog.csdn.net/miketom155/article/details/45058195

你可能感兴趣的:([技术] 用 Maven 搭建多项目 Project)