`
星夜的遐想
  • 浏览: 189340 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maven构建多模块项目

阅读更多

在使用Maven进行项目开发过程中,如果非要使用多模块开发的方式的话,如果按照各模块的功能来讲,可以分为web层,service层,dao层,base层,当然基本上也没有用到什么dao层,因为我们一般都会有一个baseDao,所以,直接在service层中调用baseDao就ok了。

因此我就简略的分为三层:

web层包含页面和样式以及处理页面请求的controller。

service层主要写处理请求的逻辑。

base主要是处理数据库的交互和一些基础操作类什么的。

 

项目结构如下:

 

 

其中demo-base1和demo-service1打成jar包,demo-web1打成war包。而demo-parent为它们的父模块打包成pom文件。

具体怎么构建这都是基础知识,网上资料太多了。

 

 

首先需要清楚的一点是:

当使用tomcat:run运行的web模块,默认以jar包的形式去仓库里面找demo-service1,如果不存在的话肯定会报异常。

因此某个模块需要运行之前,先通过install命令将相应的依赖安装到本地仓库,当然如果觉得一个个install带来的麻烦,我们一样直接通过父类

demo-parent的install,这样就可以将其下demo-base1,demo-service1,demo-web1都安装到本地仓库了。

 

 

但问题是在实际开发过程中,模块进行修改时很频繁的,如果一动就install一次的话,显然有些麻烦,同时还有一个潜在的问题就是因为被依赖的模块都是通过jar文件被引用的,都是class文件,没法调式。

 

如何保证修改模块的代码可以即时生效,并且可断点调式?。

 

 

将dmo-web1模块通过->project Facets->转成Dynamic Module,并配置Deployment Assembly中加入依赖的demo-servic1,和demo-base1。

 

如下图所示:

 

 

 

并且是在server 试图中将demo-web1部署到tomcat中,问题就可以解决了。

 

这样在无乱时通过运行demo-web1时如无论是修改了demo-base1或demo-service1都可以立即生效。

 

 

 

问题二:当开发完成需要打包到测试环境的的时候,如何保证是最新的代码?

解决方案1:通过Eclipse的Export直接将demo-web1导出,这样不适合多环境配置,需要在打包前改不同环境的配置文件(数据库配置什么的)。

解决方案二:通过demo-parent打包package,根据需要可以激活不同环境的 <profile>,只需打包的时候只需参数P,如测试换 package -Ptest什么的就ok。

 

 

 

附件包含源代码:demo-parent.rar

 

方法二:

其实在配置tomcat:run启动时,勾选配置Resolve workspace aritfacts就可以满足我们的需求,优先从本地工作空间中寻找依赖,这样就可以及时发现依赖模块的修改。

 

 

 

 

 

 

  • 大小: 15.9 KB
  • 大小: 40.7 KB
  • 大小: 76.1 KB
  • 大小: 22.9 KB
分享到:
评论

相关推荐

    使用Maven构建多模块项目

    本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子...

    maven构建多模块项目

    本文将深入探讨如何使用Maven构建多模块项目,以实现代码的高效组织和复用。 首先,Maven多模块项目是将一个大型项目划分为多个相互依赖的子项目,每个子项目负责特定的功能模块,这样可以提高开发效率,便于代码...

    maven构建 多模块项目

    Maven构建多模块项目是软件开发中的常见实践,尤其在大型复杂项目中,通过模块化管理可以提高代码组织的清晰度和可维护性。Maven是一个强大的项目管理和构建工具,它通过POM(Project Object Model)文件来管理项目...

    maven构建多模块项目源码实例

    使用maven构建多模块项目。在一个项目中使用多个模块的一个方法是将模块添加为依赖项,正常情况下,我们会添加一个外部模块作为依赖。但是,当模块是一个项目的一部分,并密切相关的时候,该项目应被构造为一个多...

    maven-3.5.0多工程构建(spring4mvc分子项目)

    maven-3.5.0多工程构建(spring4mvc分子项目) 使用maven构建多模块项目。在一个项目中使用多个模块的一个方法是将模块... maven maven3.5.0 多工程构建 spring4mvc 子项目 maven构建项目 多模块项目 maven构建WEB项目

    Intellj IDEA+Maven如何构建多模块项目

    以下将详细介绍如何在IntelliJ IDEA中利用Maven构建多模块项目。 1. **创建父模块** 首先,我们需要创建一个父模块(Parent Module),这个模块不包含任何源代码,主要用来管理子模块的版本和其他共用配置。在...

    maven多模块项目构建过程

    本篇文章将详细探讨"Maven多模块项目构建过程",并结合提供的资源"搭建maven多工程模块步骤",来深入理解如何创建和管理一个包含多个子项目的Maven工程。 1. Maven多模块项目概述: Maven多模块项目是指由一个父...

    maven多模块项目(简单实例)

    在实际开发中,Maven多模块项目还有助于团队协作,每个开发者可以专注于自己负责的模块,而无需关心整个项目的构建过程。同时,当项目变得庞大时,多模块设计也有利于进行单元测试和独立部署。 总结来说,Maven多...

    maven多模块项目

    Maven多模块项目是一种高效组织大型Java项目的方式,它允许我们将一个复杂的系统分解为多个相互依赖的独立模块,每个模块专注于特定的...通过合理规划和精心管理,Maven多模块项目能帮助团队高效地构建复杂的应用程序。

    使用maven创建多模块项目

    尤其是在创建多模块项目时,Maven的模块化管理功能显得尤为重要。 ### Maven的基础知识 Maven是一个项目管理工具,主要服务于基于Java的项目。它利用一个名为POM(Project Object Model)的XML文件来描述项目的...

    SpringBoot+Maven 多模块项目的构建、运行、打包实战

    本文主要介绍了 SpringBoot+Maven 多模块项目的构建、运行、打包实战,将 Maven 多模块项目与 SpringBoot 进行集成,通过一个实际的示例项目,展示了如何使用 Maven 构建多模块项目,如何在 IDEA 中创建 SpringBoot ...

    maven多模块项目工程-已搭建好

    在Eclipse中,你可以通过“New -&gt; Maven Project”创建新的Maven项目,并选择“Create a simple project”或“Create a multi-module project”来构建多模块工程。 3. **依赖管理**:在"xd-parent"的`pom.xml`中,...

    使用maven管理多模块项目并启动调试-实例代码

    Maven作为Java领域广泛使用的构建工具,以其强大的依赖管理和项目生命周期管理能力,成为多模块项目管理的理想选择。本教程将详细介绍如何使用Maven来管理多模块项目,并指导如何进行项目的启动与调试。 首先,理解...

    Maven建立多模块项目-图文并茂--入门级别.doc

    ### Maven建立多模块项目知识点详解 #### 一、Maven与多模块项目基础概念 - **Maven**:Apache Maven 是一款项目管理和构建工具,基于项目对象模型(POM),通过一组规范完成项目的构建、报告和文档。Maven 的目标...

    基于Java的Maven构建学生管理系统实例

    ② 掌握使用 Maven 构建多模块项目的流程;③ 实现并理解学生管理系统的核心业务逻辑。 其他说明:文中提供了详尽的代码实现细节,帮助读者更好地理解和上手 Java 开发,适合初学者作为实践项目的参考和学习资料。

    Maven 构建多个项目示例代码

    在软件开发过程中,Maven是一个不可或缺的工具,它主要用于管理和...通过这个示例代码,开发者可以学习如何组织和管理多项目结构,理解Maven的生命周期、依赖管理、插件使用等核心概念,从而提升开发效率和项目质量。

    maven分模块小demo

    总结来说,"maven分模块小demo"是一个典型的Maven多模块项目示例,它演示了如何利用Maven进行项目结构的划分、依赖管理、构建和部署。对于初学者而言,这是一个理解Maven工作原理和实践项目组织的良好起点。通过深入...

Global site tag (gtag.js) - Google Analytics