最近刚换公司,新公司使用maven进行源码管理。我这里进行一下简答的学习搭建,希望对大家有所帮助。这里我搭建一个例子,使用cms的web端,dao,service端进行分模块。
基本格局如下:
cms
| - -pom.xml(pom)
| - -dao
| | - -pom.xml(jar)
| - -service
| | - -pom.xml(jar)
| - -website
| | - -pom.xml(war)
上面示意图中,有一个父项目cms,聚合子模块dao,service,website。每个模块,包含父模块,都有一个pom.xml.图中也标识了每个模块的打包方式。
这些模块的依赖关系是:
service -- >dao
website -- > service
下面列一下各个模块的pom.xml
cms目录下的pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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.gxkj</groupId> <artifactId>cms</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>${project.groupId} ${project.artifactId} ${project.version}</name> <modules> <module>dao</module> <module>service</module> <module>website</module> </modules> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_2.5_spec</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <finalName>cms</finalName> </build> </project>
提供一些依赖包,子模块继承时候,自动继承,不需要重复写。
dao里pom.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>com.gxkj</groupId> <artifactId>cms</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.gxkj.cms</groupId> <artifactId>dao</artifactId> <name>${project.groupId} ${project.artifactId} ${project.version}</name> <build> <finalName>cms-dao</finalName> </build> </project>
service里pom.xml代码如下
<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>com.gxkj</groupId> <artifactId>cms</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>service</artifactId> <groupId>com.gxkj.cms</groupId> <name>${project.groupId} ${project.artifactId} ${project.version}</name> <dependencies> <dependency> <groupId>com.gxkj.cms</groupId> <artifactId>dao</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>cms-service</finalName> </build> </project>
website里pom.xml代码如下
<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>com.gxkj</groupId> <artifactId>cms</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.gxkj.cms</groupId> <artifactId>website</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>com.gxkj.cms</groupId> <artifactId>service</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>cms-web</finalName> </build> </project>
子模块通过<parent>标签从父模块继承各种属性。使用eclipse导入项目,具体步骤是File-import-existing maven projects->选择目录cms所在目录,在高级里,选择命名模板[groupId].[artifactId]->finish。
发布时,在项目cms上右键,Run as ->Run Configurations->base directory里选择cms项目,Goals里填写命令:clean dependency:copy-dependencies package 。如图:
点击run。以后通过左上角的debug,run按钮即可。
附上源码供参考使用。
多模块开发测试,使用tomcat发布的方式如下图:
相关推荐
总结来说,搭建Maven多模块项目是提升项目管理效率的重要手段,它允许我们将复杂项目分解为易于管理的小部分,并通过统一的父模块来协调各部分之间的依赖和构建流程。通过阅读给出的博客链接,读者可以得到更具体的...
《客户管理系统:源码与文档解析》 在IT领域,客户管理系统(Customer Management System,简称CMS)是企业信息化建设中的重要组成部分,它帮助企业有效管理客户信息、跟踪销售过程、优化服务体验,从而提升企业的...
24小时在线短剧机器人源码搭建
本源码适合新手学习,简单易懂,它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!...
8. **数据库表设计**:系统附带了数据库表结构,开发者可以根据这些表进行数据迁移和数据初始化,快速搭建环境。 此外,该系统还可能包含错误日志记录、邮件通知等功能,以确保系统的稳定运行和良好的用户体验。...
这个超详细文件版旨在为初学者提供一个易于理解的搭建过程,通过附带的源码和Typora文件,使得学习者能够逐步实践,加深对SSM的理解。 1. **Spring框架**:Spring作为基础容器,负责管理对象的生命周期和依赖注入。...
通过这个项目,开发者不仅可以学习到如何利用SSM框架搭建Web应用,还能掌握Maven的项目构建与管理,数据库的设计与操作,以及良好的代码注释习惯。此外,系统设计文档能帮助理解整体架构设计,提升软件工程素养。...
2023最新UI任务悬赏抢单源码-附带简单安装教程+数据-完美运营 H5任务平台源码,前端:uinapp,后端:php,框架:tp5 可以在平台上面布悬赏任务、招标任务、在线托管、在线担保、也可以接任务做,可以在线充值和支付...
【标题】中的“骆驼IPTV管理系统全开源源码可对接EZtv电视直播管理系统”表明这是一个基于IPTV(Internet Protocol Television)技术的管理软件系统,其特点是完全开源,并且能够与EZtv电视直播管理系统进行整合。...
本系统源码提供了一种可运营的解决方案,允许用户在线申请并管理SSL证书,无需通过第三方服务商。下面将详细阐述相关知识点。 一、SSL证书原理 SSL(Secure Sockets Layer)证书是基于公钥基础设施(PKI)的一种...
【标题】"最新运营级技术导航系统网址导航系统源码-附带新秀导航全站数据" 提供的是一款高质量的、专为运营设计的技术导航系统源码,它集成了新秀导航的数据,区别于常见的泛滥版本,具有更高的稳定性和定制性。...
为了方便用户快速上手,源码通常会附带视频搭建教程。这些教程会详细指导如何安装环境(如服务器配置、数据库设置)、部署源码、配置支付接口等步骤,即使是编程新手也能按照教程完成系统搭建。 五、安全性与防护 ...
本套源码专为构建这样一套系统而设计,具备自适应手机移动端的能力,同时支持多商家使用,并附带有详细的搭建教程。 一、在线客服系统核心功能 在线客服系统的核心功能包括实时聊天、消息推送、历史记录查看、访客...
标题中的“2024全新开发API接口调用管理系统网站源码 附教程.zip”表明这是一个包含源代码的压缩文件,特别的是,它是一个用于管理API接口调用的系统,并且附带了教程,便于用户理解和使用。API(Application ...
### 2023新版塔罗网站源码搭建与配置详解 #### 一、前言 随着互联网技术的发展,各种在线服务不断涌现,其中塔罗牌作为一种古老的占卜方式,在现代社会也通过网络平台焕发了新的生机。本文将详细介绍2023年新版...
《多语言IM即时通讯源码实现详解》 即时通讯(Instant Messaging, IM)技术在现代社会中扮演着重要的角色,尤其在互联网应用中,它已成为必不可少的功能之一。本篇将深入探讨一个支持多语言并实现7端互通的IM即时...
这种源码的核心是利用PHP语言进行编程,它为开发者提供了构建实时互动直播间所需的各种功能模块,包括用户管理、房间创建、直播流处理、聊天互动等。在金融财经领域,这样的系统常用于在线股票分析、期货讲解、投资...
"酒店管理系统"标签表明这个系统是为酒店业设计的,可能包含预订管理、入住管理、客房管理、账单管理、员工管理等多个模块,旨在提高酒店运营效率和服务质量。 【文件列表】 虽然没有具体的文件列表,但通常一个...
本资源提供的是一个完整的直播带货系统的源代码,附带搭建教程,旨在帮助那些希望构建自己直播平台的开发者或企业。 首先,我们要了解直播带货系统的组成部分。一个这样的系统通常包括以下几个关键模块: 1. **...
4. **SSM框架**:Spring框架提供了依赖注入和面向切面编程,便于模块化开发和管理;SpringMVC则负责处理HTTP请求,协调各组件工作;MyBatis是一个持久层框架,简化了数据库操作,使得Java代码能直接与SQL语句关联。 ...