引言

在《Maven学习(三)————Maven核心概念(二)》中,学到了Maven 继承和 Maven 聚合的概念,这两个概念,解决的问题分别是:

1、解决一些公共依赖统一版本的问题。

2、统一打包部署。

那么究竟该如何构建一个由 Maven 管理的 “分包分模块” 的企业级应用项目呢?本文带你探索。

一、最佳实践

使用 Eclipse 构建一个 Maven 分包分模块的项目,使用 Spring Boot的依赖管理功能。在Eclipse 中的 working sets 进行工程管理。

1、新建父工程

新建一个专门的 working sets,方便管理 maven 子模块(略)。

在 Eclipse 中选中 对应的working sets,右键 New——> Maven Project:勾选第一项。

然后根据要求填写必要的坐标信息:

2、提取公共的依赖(可暂时略过)

1、定义公共变量<properties>:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.12</junit.version><log4j.version>1.2.17</log4j.version><lombok.version>1.16.18</lombok.version>
</properties>

2、定义主要公共依赖<dependencyManagement>:

<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.9.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency></dependencies>
</dependencyManagement>

完整 pom 文件:

<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mht</groupId><artifactId>mavendemo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.12</junit.version><log4j.version>1.2.17</log4j.version><lombok.version>1.16.18</lombok.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.9.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency></dependencies></dependencyManagement>
</project>

3、构建公共子模块 API

右键刚刚建好的父工程 mavendemo,New——>Maven Module:勾选第一项“simple project”——>填写会话框:

完成后的项目结构如下图所示:

另外,在 父工程的 pom 文件中,会自动添加了聚合配置:

 <modules><module>mavendemo-api</module></modules>

(未完待续......)

Maven学习(六)————企业Maven项目最佳实践相关推荐

  1. Maven学习总结(二)——Maven项目构建过程练习

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...

  2. Maven学习总结(一)——Maven入门

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...

  3. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  4. 帆软行业总监陈鹏:从500强企业看企业数据应用最佳实践

    近日,畅享网携手appcan成功举办企业"移动化"案例分享沙龙.本次沙龙由新城控股集团星翼空间总经理從申主持,精准聚焦"移动化"成功转型案例.会上,各位IT专业 ...

  5. 威胁情报大会直击 | 企业IT部王森:腾讯企业终端安全管理最佳实践

    8月29日,2018网络安全分析与情报大会在北京新云南皇冠假日酒店正式开幕,本次大会由国内威胁情报领军企业微步在线主办,十数位来自政府.央企.金融.互联网等一线公司的安全专家将对威胁情报的落地应用进行 ...

  6. 软件项目最佳实践: 可编程的权限控制

    续 软件项目最佳实践: 又谈权限管理 当我们面对复杂的权限控制一愁莫展时,因为未来不明确需求而烦恼时,我们期望项目的权限控制是可编程的,但手中的代码不堪入目,只能暗自发誓接手下一个新项目时,一定重新设 ...

  7. Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解

    2019独角兽企业重金招聘Python工程师标准>>> <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  8. 数据治理分析项目最佳实践

    当今信息化建设程度不断深入,企业在优化整合各种IT能力,使IT成为企业的前进驱动力与核心竞争力的同时,将视角关注于更深层次的数据治理与分析,预示着以数据.流量.知识为主的数字经济时代到来,此背景下,数 ...

  9. maven学习记录:maven专栏简介

    maven专栏简介 一.我之前自己写的有关maven的博客: 二.Maven 特点 三.Maven POM 1.介绍POM 2.父(Super)POM 四.此专栏的意义 一.我之前自己写的有关mave ...

最新文章

  1. Windows7 Scrapy框架建立
  2. [每日编程]求 largest Number - 给出一组非负整数,求这些非负整数可以拼接出的最大数字...
  3. 前后端分离项目,后端是如何处理前端传递的token?
  4. 面试官:请讲一下Redis主从复制的功能及实现原理
  5. mysql分组后组内排序_图解排序 3/10 希尔排序
  6. ffmpeg转码之TS转PS
  7. linux如何进入超级终端,使用telnet和超级终端登录控制Ubuntu
  8. 如何将国际音标插入到Word中? | 怎么打48个国际音标?
  9. Django中文文档2.0
  10. [产品设计]如何绘制业务流程图(下)
  11. python 等差数列_413. 等差数列划分(Python)
  12. Win10联想拯救者如何打开和关闭键盘背光灯
  13. 微信小程序顶部下拉菜单栏
  14. BERT预训练模型的使用
  15. 汽车行业的互联网生意经
  16. jk触发器的异步置位端和异步复位端的表示方法
  17. 库卡工业机器人负载曲线图_KUKA/库卡工业机器人 KR10 R1100 机械手臂 负载10KG 六轴...
  18. 光盘显示0字节可用_DVD-Cloner 2020 for mac(DVD光盘刻录工具)
  19. 【2022高考季】作为一个过来人想说的话
  20. 【MTK】flashlight驱动部分调试

热门文章

  1. ## c 连接字符_用于字符比较的C#程序
  2. 2万字!66道并发面试题及答案
  3. Java打造一款SSH客户端,已开源!
  4. Xamarin开发笔记—设备类amp;第三方弹窗的使用和注意事项
  5. WakaTime 记录你的时间(Moana 自动同步信息客户端)
  6. ABCDE类IP地址的解释
  7. ASP.NET MVC从数据库读取、存入图片
  8. Shiro授权流程图
  9. Linux系统驱动全吗,linux系统需要给硬件安装驱动程序么?谁推荐一下linux系统阿~要驱动最全...
  10. python简单实用案例_Python 21 Django 实用小案例1