《Maven 实战》读书笔记(六) 聚合

2024-09-03 17:18

本文主要是介绍《Maven 实战》读书笔记(六) 聚合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Maven聚合的概念

聚合概念是由来已久,比如我们需要2个项目协调合作才能完成一个大的、完整的业务场景,这个时候就需要构建2个项目,但是呢,想一次性就构建这2个项目,而不是分别构建2个项目后再合在一起整。这样我们就需要一个比较特殊的项目了,就是所谓的聚合项目,这个项目没有别的目的,就是仅仅为了聚合多个项目模块用的。

2. 新的项目模块

在介绍聚合项目前,先利用IDE建立一个新的项目模块——MavenAccount-persist,负责注册系统的持久层业务,按照Maven的项目规范,我们建立项目如下。

实体POJO如下
    package pojo;  

/**
* 注册用户实体
* @author liuyan
*/
public class Account {

private String id;
private String name;
private String password;
private String email;

//省去setter和getter

}


业务接口

    package dao;  
import pojo.Account;

/**
* 业务接口
* @author liuyan
*/
public interface AccountDAO {

public boolean save(Account account);

public boolean update(Account account);

public Account query();

public boolean delete(String id);

}


接口实现类

    package dao.impl;  

import pojo.Account;
import dao.AccountDAO;

/**
* 业务实现类
* @author liuyan
*/
public class AccountDAOImpl implements AccountDAO {

@Override
public boolean delete(String id) {
System.out.println("删除记录");
return true;
}

@Override
public Account query() {
System.out.println("查找记录");
return null;
}

@Override
public boolean save(Account account) {
System.out.println("保存记录");
return true;
}

@Override
public boolean update(Account account) {
System.out.println("更新记录");
return true;
}

}



之前咱们说过,Java具体技术不是我们这个学习笔记系列的重点,所以我只是输出一些简单信息,并没有和任何的持久层框架结合起来。咱们权且当做完成了这个注册系统的持久层模块吧。

Spring配置文件

    <?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p">

<bean id="accountDAO" class="dao.impl.AccountDAOImpl">
</bean>

</beans>


mvn clean install


之后两个模块就一起构建了。

    [INFO] ------------------------------------------------------------------------  
[INFO] Building MavenAccount-aggregator 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ MavenAccount-aggrega
tor ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ MavenAccount-a
ggregator ---
[INFO] Installing E:\Genuitec\ws\MavenAccount-aggregator\pom.xml to C:\Users\liu
yan\.m2\repository\com\liuyan\account\MavenAccount-aggregator\0.0.1-SNAPSHOT\Mav
enAccount-aggregator-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] MavenAccount-email ................................ SUCCESS [6.553s]
[INFO] MavenAccount-persist .............................. SUCCESS [1.498s]
[INFO] MavenAccount-aggregator ........................... SUCCESS [0.062s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.300s
[INFO] Finished at: Sun Jun 05 12:51:01 CST 2011
[INFO] Final Memory: 13M/31M
[INFO] ------------------------------------------------------------------------


4. 总结

我们这里仅仅介绍了集合模块一起构建的方式,当然如果模块少,一个一个分别build成功后再集成也无可厚非,看项目具体情况而定。这次我们留了一个问题,就是这两个项目模块使用的依赖包版本不一致怎么办,因为pom.xml是分别声明的依赖,这个问题我们留在了Maven继承机制解决。

这篇关于《Maven 实战》读书笔记(六) 聚合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

IDEA与JDK、Maven安装配置完整步骤解析

《IDEA与JDK、Maven安装配置完整步骤解析》:本文主要介绍如何安装和配置IDE(IntelliJIDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在I... 目录1. IDE安装步骤2.配置操作步骤3. JDK配置下载JDK配置JDK环境变量4. Maven配置下

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3