Skip to content

feiniaojin/ddd-archetype

Repository files navigation

1. ddd-archetype介绍

本项目是作者《悟道领域驱动设计》书中采用的应用架构的脚手架。《悟道领域驱动设计(Thinking in Domain Driven Design)》一书是作者多年实战领域驱动设计的总结,力求用最平实、最通俗、最容易理解的方式将DDD分享给各位朋友。

项目地址:https://github.com/feiniaojin/Thinking-in-DDD

在线阅读:http://ddd.feiniaojin.com/

关于该应用架构,详细见第2章 应用架构。我们在落地DDD应用架构时,通常将项目分为多个Maven Module,如下图。

架构图

如果每个项目都手工创建一次,是比较繁琐的工作,也不利项目结构的统一。Maven Archetype是一个Maven插件,它允许开发人员通过指定一组参数来创建项目的基础结构,可以帮助开发人员快速创建项目的基础结构,大大减少开发人员在创建项目时所需的时间和精力,并且可以确保项目结构的一致性和可重用性,从而提高代码质量和可维护性。

ddd-archetype是一个Maven Archetype的原型工程,我们将其克隆到本地之后,可以安装为Maven Archetype,帮助我们快速创建DDD项目脚手架。

欢迎star!

2. ddd-archetype的安装使用

2.1 安装过程

以下将以IDEA为例展示ddd-archetype的安装使用过程,主要过程是:

克隆项目-->archetype:create-from-project-->install-->archetype:crawl

2.1.1 克隆项目

将项目克隆到本地:

git clone https://github.com/feiniaojin/ddd-archetype.git

直接使用主分支即可,然后使用IDEA打开该项目

p9olKXQ.png

2.1.2 archetype:create-from-project

配置打开IDEA的run/debug configurations窗口,如下: p9ol17n.png

选择add new configurations,弹出以下窗口: p9olGt0.png

其中,上图中1~4各个标识的值为:

标识1 - 选择"+"号;

标识2 - 选择"Maven";

标识3 - 命令为:

archetype:create-from-project -Darchetype.properties=archetype.properties

注意,在IDEA中添加的命令默认不需要加mvn

标识4 - 选择ddd-archetype的根目录

以上配置完成后,点击执行该命令。

2.1.3 install

上一步执行完成且无报错之后,配置install命令。

p9oltpT.png

其中,上图中1~2各个标识的值为:

标识1 - 值为install

标识2 - 值为上一步运行的结果,路径为:

ddd-archetype/target/generated-sources/archetype

install配置完成之后,点击执行。

2.1.4 archetype:crawl

install执行完成且无报错,接着配置archetype:crawl命令。

p9olN1U.png

其中,标识1中的值为:

archetype:crawl

配置完成,点击执行即可。

2.2 使用ddd-archetype初始化项目

  • 创建项目时,点击manage catalogsp9olaX4.png

  • 将本地的maven私服中的archetype-catalog.xml加入到catalogs中: p9ol0B9.png

添加成功,如下: p9olrA1.png

  • 创建项目时,选择本地archetype-catalog,并且选择ddd-archetype,填入项目信息并创建项目: p9olstx.png

  • 项目创建完成后: p9TtUh9.png

3. 成功案例

作者已使用该脚手架完成许多项目的开发,其中开源出来的案例见随书示例代码

4. DDD学习交流群

欢迎加入DDD交流群。微信扫以下二维码添加作者微信,标注“DDD”,好友申请通过后拉您进群。

pi1rmB6.jpg

About

Maven Atchetype,implements the layered application architecture of Domain Driven Design(DDD)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages