微服务实战系列(十一)-微服务之自定义脚手架

 

1. 场景描述

(1)随着微服务越来越常见,一个大的项目会被拆分成多个小的微服务,jar包以及jar之间的版本冲突问题,变得越来越常见,如何保持整体微服务群jar及版本统一,也变成更加重要了,maven的自定义archetype(模板/骨架/脚手架)很好的解决了这个问题,在新建微服务项目的时候,使用统一的archetype创建项目,可以提高开发效率与避免不必要的项目jar包冲突。

(2)自定义archetype(模板/骨架/脚手架)主要有两个作用,一是针对本人,后续开发使用已经验证过的项目配置,可以提高开发效率与避免不必要的问题;二是针对项目成员或公司同事,大家使用统一的archetype,可以有效避免jar及版本冲突。

2. 解决方案

2.1 pom文件新增插件信息

首先在将作为archetype的项目的pom文件中添加插件配置信息:

            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.0</version>
</plugin>

如下图:

2.2 生成自定义archetype项目信息

点击mvn命令按钮,执行下面命令

mvn archetype:create-from-project

如下图:

2.3 查看及编译archetype项目信息

执行完成后,console中会有提示,项目文件生成在target下面。

文件可以直接修改,这时候可以修改pom文件或者java类,比如在pom文件中新增maven仓库信息。

<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.0.11:8888/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.0.11:8888/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

如下图:

2.4 打包(jar/war)

(1)路径是刚才生成的archetype路径:

E:\tool\workspace\spcrud\target\generated-sources\archetype

(2)执行maven命令是:

mvn clean install

(3)效果图

说明: jar包会打包到本地仓库中

[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ spcrud-archetype ---
[INFO] Installing E:\tool\workspace\spcrud\target\generated-sources\archetype\target\spcrud-archetype-0.0.1-SNAPSHOT.jar to E:\m2\repository\com\laowang\spcrud-archetype\0.0.1-SNAPSHOT\spcrud-archetype-0.0.1-SNAPSHOT.jar
[INFO] Installing E:\tool\workspace\spcrud\target\generated-sources\archetype\pom.xml to E:\m2\repository\com\laowang\spcrud-archetype\0.0.1-SNAPSHOT\spcrud-archetype-0.0.1-SNAPSHOT.pom

2.5 使用archetype创建工程

说明:

如果你觉得文章对你有些帮助,欢迎微信搜索「软件老王」第一时间阅读或交流!

(1)新建工程,选择从archetype中创建工程,录入gav定位jar包,这个gav可以在本地maven仓库自定义archetype的xml中看到(刚才打包的时候也有)。

(2)这个是从本地仓库获取的jar包创建的,团队成员或者公司人员使用的话,需要把对应的jar包上传到maven私服库中即可,其他流程不变。

微服务实战系列(十一)-微服务之自定义脚手架-copy的更多相关文章

  1. go-zero微服务实战系列(十一、大结局)

    本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...

  2. go-zero微服务实战系列(三、API定义和表结构设计)

    前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一 ...

  3. ASP.NET Core微服务实战系列

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. 前言 这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想 ...

  4. 微服务实战系列--Nginx官网发布(转)

    这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...

  5. Chris Richardson微服务实战系列

    微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...

  6. Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)

    简介 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 系列 云原生 API 网关,gRPC-Gateway V2 初探 业务流程 官方开发接入文档 ...

  7. go-zero 微服务实战系列(二、服务拆分)

    微服务概述 微服务架构是一种架构风格,它将一个大的系统构建为多个微服务的集合,这些微服务是围绕业务功能构建的,服务关注单一的业务功能,这些服务具有以下特点: 高度可维护和可测试 松散的耦合 可独立部署 ...

  8. SpringCloud微服务实战——第三章服务治理

    Spring Cloud Eureka 服务治理 是微服务架构中最核心最基本的模块.用于实现各个微服务实例的自动化注册与发现. 服务注册: 在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中 ...

  9. go-zero 微服务实战系列(一、开篇)

    前言 在社区中经常看到有人问有没有基于 go-zero 的比较完整的项目参考,该类问题本质上是想知道基于 go-zero 的项目的最佳实践.完整的项目应该是一个完整的产品功能,包含产品需求.架构设计. ...

  10. 微服务实战系列(四)-注册中心springcloud alibaba nacos

    1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...

随机推荐

  1. Mac安装Docker

    一.下载 从官网下载速度太慢,推荐在阿里云镜像下载. 下载地址:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/D ...

  2. SpringMVC源码剖析(四)- DispatcherServlet请求转发的

    SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即"service"阶段.在"service"阶段中,每一次Http请求到来 ...

  3. Dockerfile&Docker-Compose之基础

    使用了很久的docker,之前却从来没有总结过, 于是开此篇来记录平常使用Dockerfile和docker-compose.yaml的点滴, 先从基础命令开始哦 [Dockerfile] Docke ...

  4. ZCMU-1033

    我觉得这位大佬说的已经很好了,可以直接看她的思路了: 大佬思路 但是她的代码没有考虑到1 1 1 1的情况, 代码思路 这个是可以的很长且没有注释: #include<bits/stdc++.h ...

  5. win10下,更改程序磁贴图标

    win8.1后,Windows支持程序图标的定制显示. 一般我们制作win程序时,会给程序设定一个标准的icon,不过这个图标不能满足win10的图标显示需求了,现在我们就用qq为例,定制一下程序图标 ...

  6. 在Windows下为CodeBlocks20.3安装、配置wxWidget3.2.6

    0.前言 CodeBlocks是使用C++编写程序的一个很好的开发环境,最大的好处是它是开源的.免费的,而不仅仅是因为它具有跨平台的能力.还有一个很重要的原因是在CodeBlocks中可以使用wxWi ...

  7. 树莓派获取唯一ID

    树莓派的CPU有序列号,可以通过读取 /proc/cpuinfo 获取 储存的UUID,可以通过 ls /dev/disk/by-uuid或blkid

  8. 使用 .NET Core 实现一个自定义日志记录器

    目录 引言 1. 抽象包 1.1 定义日志记录接口 1.2 定义日志记录抽象类 1.3 表结构迁移 2. EntityFramework Core 的实现 2.1 数据库上下文 2.2 实现日志写入 ...

  9. Java 和 native 的一些进展

    GraalVM Java 生成 DLL/SO https://medium.com/graalvm/3-ways-to-polyglot-with-graalvm-fb28c1542b45 Proje ...

  10. .NET 阻止系统睡眠/息屏

    本文介绍Windows系统设备下如何阻止系统睡眠/息屏,以及想看当前阻止睡眠/息屏的应用信息 powercfg /requests查看活动列表 在播放音乐时,我们会发现设置了系统电源管理-自动睡眠,计 ...