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私服库中即可,其他流程不变。


I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

微服务时代之自定义archetype(模板/骨架/脚手架)的更多相关文章

  1. 微服务时代之2017年五军之战:Net PHP谁先死

    其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用讯飞也不大好,另外无论在家还是在公司,开个语音一本正经的叽叽叽, ...

  2. 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训

    [编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...

  3. 微服务时代之网关相关技术选型及部署(nacos+gateway)

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

  4. 微服务时代TestOps工程师学习总结

    TestOps很新鲜,也是近期衍生的新型职位.那TestOps主要目的是推动整个研发体系与发布体系更多在质量方面.可以这样理解DevOps是从研发推动配合运维和测试,而TestOps是从测试角度推动研 ...

  5. 微服务之springboot 自定义配置(一)Application配置文件

    配置的文件的格式 springboot可以识别两种格式的配置文件,分别是yml和properties 文件.我们可以将application.properties文件换成application.yml ...

  6. 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

    技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...

  7. .Net Core微服务系列--配置中心

    什么是配置中心 简单来说配置中心就是对配置进行管理的一个中心.对于配置这个司空见惯的东西,我们想想为什么对于应用程序需要各种各样的配置来支撑? 我们人类没有办法掌控和预知一切,所以映射到软件系统这个领 ...

  8. .netcore 3.1高性能微服务架构:封装调用外部服务的接口方法--HttpClient客户端思路分析

    众所周知,微服务架构是由一众微服务组成,项目中调用其他微服务接口更是常见的操作.为了便于调用外部接口,我们的常用思路一般都是封装一个外部接口的客户端,使用时候直接调用相应的方法.webservice或 ...

  9. 微服务生态组件之Spring Cloud OpenFeign详解和源码分析

    Spring Cloud OpenFeign 概述 Spring Cloud OpenFeign 官网地址 https://spring.io/projects/spring-cloud-openfe ...

随机推荐

  1. 通俗地说决策树算法(三)sklearn决策树实战

    前情提要 通俗地说决策树算法(一)基础概念介绍 通俗地说决策树算法(二)实例解析 上面两篇介绍了那么多决策树的知识,现在也是时候来实践一下了.Python有一个著名的机器学习框架,叫sklearn.我 ...

  2. java学习-NIO(四)Selector

    这一节我们将探索选择器(selectors).选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能.就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个 I/ ...

  3. resolv.conf文件配置相关的案例

    引言 操作系统中/etc/resolv.conf配置文件中的内容一般为空,如果该文件配置不正确,将导致ssh.route.netstat命令响应慢的问题. 在/etc/resolv.conf添加错误地 ...

  4. MQ服务器端和客户端通信浅谈

    MQ服务器端和客户端通信浅谈 1. WebSphere MQ的服务端的安装和配置 (1)创建名为venus.queue.manager的默认队列管理器. 在DOS窗口命令提示符下,输入以下命令: cr ...

  5. 《机器学习技法》---soft-margin SVM

    1. soft-margin SVM的形式 其中ξn表示每个点允许的犯错程度(偏离margin有多远),但是犯错是有代价的,也就是目标函数里面要最小化的.c控制对犯错的容忍程度. 2. 推导soft ...

  6. 读取某个目录下的所有图片并显示到pictureBox

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. pip安装时使用国内源,加快下载速度

    国内源: 新版ubuntu要求使用https源,要注意. 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.c ...

  8. 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)

    背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告.  公司jenkins搭建在linux服务器上 ...

  9. mysql数据库磁盘空间被撑爆,创建定时任务定期释放资源

    问题描述: 这是我在工作中遇到的一个问题,目前只发现mysql数据库存在该问题,Oracle和gaussDB未发现磁盘空间被占满的情况,部署堆栈服务的时候抛出了写入数据库表失败的问题,经排查,在数据库 ...

  10. 清缓存的姿势不对,真的会出生产bug哦

    最近解决了一个生产bug,bug的原因很简单,就是清理缓存的方式不对.本来没啥好说的,但是考虑到我们有时候确实会在一些小问题上栽跟头,最终决定把这个小故事拿出来跟大家分享下. 风起有一天在撸代码,突然 ...