Java中如何快速构建项目脚手架的实现

目录
  • 1 前言
  • 2 微服务项目准备
  • 3 脚手架构建
    • 3.1 项目正常启动 && 测试用例正常
    • 3.2 在项目的根pom中加入以下maven插件配置
    • 3.3 执行archetype插件
    • 3.4 执行安装命令
    • 3.5 将smilehappiness-project-template deploy到私服
  • 4 基于脚手架生成新的项目
    • 4.1 添加脚手架
    • 4.2 创建新项目
    • 4.3 命令行基于脚手架生成新的项目

1 前言

项目中,目前主流的当然是微服务项目。为了应对高并发,以及保证自己的服务比较稳定,通常会把服务按照模块,或者具体的业务划分为多个独立的微服务,那么如果一个一个去创建每一个微服务项目,感觉在做重复的事情,而且容易出错,所以笔者就自己搞了一个通用的脚手架,在此基础上修修补补,大大提高了工作项目。

2 微服务项目准备

在进行脚手架构建之前,肯定需要有一套自己的或者公司统一的微服务项目规范,比如说依赖管理、项目的包结构等等,然后基于这些规范写一个空的微服务项目出来,基于这个来生成项目脚手架模板。每个公司的项目名称、包名称,都有自己公司的标准,所以结构都不相同,这里项目源码就忽略了,可以给大家分享一下目前大致的目录结构,大致如下:

每个模块大致功能介绍:

模块名 描述
smilehappiness-api 用来存放自己服务内的feign服务,可以用来给另一个项目强引用
smilehappiness-api-entity 该模块,是为了兼容强依赖,而做的妥协,不建议使用强依赖
smilehappiness-common 用来做一些通用的配置、拦截或者过滤器等等
smilehappiness-dao 持久层处理的代码,可以放到这个目录下
smilehappiness-integrate 用来存放外部项目的feign调用client,也可以做一些核心的插件集成
smilehappiness-job 该模块用来实现xxl-job或者其他任务调度功能
smilehappiness-model 用来存放核心的model类,一般是与数据库对应的实体类
smilehappiness-msg 用来处理消息功能,可以使短信、邮件或者是mq消息
smilehappiness-service 核心业务处理
smilehappiness-test 测试用例模块
smilehappiness-web 对外提供action层的restful接口,可以让外部直接通过http方式访问
smilehappiness-start 项目启动模块

3 脚手架构建

在第二步创建一个spring-boot的maven项目后,就可以开始构建脚手架了

3.1 项目正常启动 && 测试用例正常

spring-boot的maven项目创建好之后,要保证项目能够正常运行起来,并且能够通过http访问,以及正常进行单元测试,确保项目基本没有问题后,将项目中的.class.setting.project无关的文件删除

3.2 在项目的根pom中加入以下maven插件配置

  <!-- 插件 -->
  <build>
       <finalName>${project.artifactId}</finalName>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-archetype-plugin</artifactId>
               <version>3.1.2</version>
           </plugin>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.8.1</version>
           </plugin>
       </plugins>
   </build>

3.3 执行archetype插件

在idea中,打开自己创建的微服务模板项目,右侧maven中,plugins展开,然后双击执行archetype:create-from-project命令,如下图所示:

在控制台中显示BUILD SUCCESS说明构建成功,同时需要把文件存放的路径记录下来,笔者生成的路径如下:
Archetype project created in D:\smilehappiness-project-template\target\generated-sources\archetype

3.4 执行安装命令

3.3步骤生成的Archetype project created in D:\smilehappiness-project-template\target\generated-sources\archetype目录中,依次执行以下两个命令:

命令一 mvn clean install

出现BUILD SUCCESS之后,就可以在本地maven仓库的根目录中看到一个archetype-catalog.xml文件(注:如果重复操作可能需要把改文件删除,否则会出现delete fail错误),打开该文件,可以看到如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
      <groupId>com.smilehappiness</groupId>
      <artifactId>smilehappiness-project-template-archetype</artifactId>
      <version>1.0.0-RELEASE</version>
      <description>project-template</description>
    </archetype>
  </archetypes>
</archetype-catalog>

命令二 mvn archetype:crawl
关于该命令,简单介绍如下:

Full name:
org.apache.maven.plugins:maven-archetype-plugin:3.2.1:crawl

Description:
Crawl a Maven repository (filesystem, not HTTP) and creates a catalog file.

mvn archetype:crawl执行过程如下:

最后生成的archetype-resource内容如下:

3.5 将smilehappiness-project-template deploy到私服

登录到nexus私服,将template deploy上传到私服:

4 基于脚手架生成新的项目

以下演示基于IDEA操作,具体如下

4.1 添加脚手架

在idea中引入脚手架,点击菜单File-> new -> Project,选择maven,勾选Create from archetype,点击 Add Archetype按钮,填写groupIdartifactId以及version信息(就是archetype-catalog.xml文件中的信息),点击OK,示例如下:

注:有可能会遇到一些问题,脚手架生成了,私服仓库也有,但是自己创建的时候就是不显示,解决办法:

C:\Users\26310\AppData\Local\JetBrains\IntelliJIdea2021.2\Maven\Indices这个目录(根据自己实际目录进行调整)下面自己新建一个UserArchetypes.xml,填写如下内容:

<archetypes>
    <archetype groupId="com.smilehappiness" artifactId="smilehappiness-project-template-archetype" version="1.0.0-RELEASE" />
</archetypes>

使用自定义的archetype:

4.2 创建新项目

点击next,进入new project界面,填写项目名称、项目位置、groupId、artifactId、version,然后点击确定,此时基于脚手架生成的项目,即创建完毕,示例如下:

创建后的生成的项目结构如下:  

4.3 命令行基于脚手架生成新的项目

如果4.1步骤,操作失败了,可以使用命令行来生成脚手架,具体操作步骤如下:

第一步,输入命令:mvn archetype:generate

第二步,选择指定的的archetype,输入对应的码值即可

第三步:输入对应的groupId、artifactId、version等,然后输入y确认,即可生成

Define value for property 'groupId': com.smilehappiness
Define value for property 'artifactId': smile-user-test
Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0-RELEASE
Define value for property 'package' com.smilehappiness: : com.smilehappiness.smile
Confirm properties configuration:
groupId: com.smilehappiness
artifactId: smile-user-test
version: 1.0.0-RELEASE
package: com.smilehappiness.smile
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: smilehappiness-project-template-archetype:1.0.0-RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.smilehappiness
[INFO] Parameter: artifactId, Value: smile-user-test
[INFO] Parameter: version, Value: 1.0.0-RELEASE
[INFO] Parameter: package, Value: com.smilehappiness.smile
[INFO] Parameter: packageInPathFormat, Value: com/smilehappiness/smile
[INFO] Parameter: package, Value: com.smilehappiness.smile
[INFO] Parameter: version, Value: 1.0.0-RELEASE
[INFO] Parameter: groupId, Value: com.smilehappiness
[INFO] Parameter: artifactId, Value: smile-user-test
[WARNING] Don't override file D:\smile-user-test\.idea\inspectionProfiles\Project_Default.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-api\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-api-entity\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-common\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-dao\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-integrate\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-job\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-model\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-msg\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-service\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-web\pom.xml
[INFO] Parent element not overwritten in D:\smile-user-test\smilehappiness-start\pom.xml
[INFO] Project created from Archetype in dir: D:\smile-user-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:20 min
[INFO] Finished at: 2022-05-29T20:39:06+08:00
[INFO] ------------------------------------------------------------------------

注: 模板脚手架中,只有包下面有文件的才会生成,而空包不会生成

参考资料:https://www.bbsmax.com/A/8Bz8N1Zo5x/

到此这篇关于Java中如何快速构建项目脚手架的文章就介绍到这了,更多相关Java中如何快速构建项目脚手架内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实战角色权限后台脚手架系统的实现流程

    Springboot框架+myBaits-Plus+MySQL实现的角色权限后台管理脚手架系统实战项目,实现的是所有系统最基础的后台管理功能,有了这个脚手架,以后开发别的项目就在这上面快速增加功能即可.本系统主要实现的功能有:菜单管理.角色管理.用户管理.登录.登出,不同的角色分配相应的权限,用户分配不同的角色登录后显示相应被分配的功能. 本系统采用前后端分离的思想设计,后端采用springboot微服务架构,主要包含一个网关服务和一个权限管理服务,开发其他功能可以再创建其他的微服务,前端采用v

  • Java中如何快速构建项目脚手架的实现

    目录 1 前言 2 微服务项目准备 3 脚手架构建 3.1 项目正常启动 && 测试用例正常 3.2 在项目的根pom中加入以下maven插件配置 3.3 执行archetype插件 3.4 执行安装命令 3.5 将smilehappiness-project-template deploy到私服 4 基于脚手架生成新的项目 4.1 添加脚手架 4.2 创建新项目 4.3 命令行基于脚手架生成新的项目 1 前言 项目中,目前主流的当然是微服务项目.为了应对高并发,以及保证自己的服务比较稳定

  • 详解vue-cli快速构建项目以及引入bootstrap、jq

    vue-cli脚手架工具快速构建项目架构: ..首先默认了有已经安装了node... npm install -g vue-cli                   全局安装vue-cli vue init webpack cnm                  生成项目名为cnm的的项目模板,cnm自定义 npm install                                   到cnm文件夹中打开Git bash或者命令窗口初始化安装依赖 此时文件夹目录应该是这样 然后

  • 手把手教你使用Django + Vue.js 快速构建项目

    目录 1. 前言 2. 环境准备 3. 创建 Django 项目 4. 创建 Vue.js 前端项目 5. 解决跨域问题 6. 整合 Django 和 Vue.js 前端 1. 前言 本篇将基于Django + Vue.js,手把手教大家快速的实现一个前后端分离的Web项目. 2. 环境准备 Python 3.6.1 Mysql 5.7.23 Pycharm (专业版) Node 3. 创建 Django 项目 创建完成后,目录结构如下所示 使用 Navicat 工具创建数据库 DjangoVu

  • 使用Vite+Vue3+Vant全家桶快速构建项目步骤详解

    目录 引言 一.vue3全家桶模板介绍 1.版本依赖 2.全家桶内置集成 二.安装 tive-cli 命令行工具 三.生成项目 四.项目体验 引言 随着Vue3 和 Vite 版本的不断更新完善,开发体验有了质的飞跃.因此,越来越多的大厂也逐步拥抱 Vue3. 利用Vite 脚手架工具可以很轻松生成以 Vue3 为模板的项目,但是作为Vue全家桶的 vue-router.vuex.axios等成员,需要自己一个一个去配置.于是便自行开发了本文讲到的 tive-cli 脚手架模板工具,只需短短几个

  • Java中Jackson快速入门

    Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个.虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多. 引入类库 由于Jackson相关类库按照功能分为几个相对独立的,所以需要同时引入多个类库,为了方便我将版本号单独提取出来设置,相关Gradle配置如下. ext { jacksonVersion = '2.9.5' } dependencies { compile group: 'com.fa

  • java中ssj框架的项目搭建流程

    1.新建一个maven项目 2.在pom.xml中,配置所需的jar包及其版本号 <!-- 设置自定义属性和值 --> <properties> <spring.version>4.1.7.RELEASE</spring.version> <hibernate.version>4.3.11.Final</hibernate.version> </properties> <dependencies> <!-

  • springboot+maven快速构建项目的示例代码

    最近公司运用springboot构建项目,确实比ssh搭建要快很多. 1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了. 2.创建一个maven项目,pom.xml文件里面写这些: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche

  • Java使用设计模式中迭代器模式构建项目的代码结构示例

    迭代器(Iterator)模式,又叫做游标(Cursor)模式.GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.   迭代器模式由以下角色组成: 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口. 具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置. 容器角色(Container):容器角色负责提供创建具体迭代器角色的接口. 具体容器角色(Concre

  • java ant 配置及构建项目图文教程

    Ant是一种基于Java的构建工具.Ant文件是配置构建目标过程的XML文件,也称为Ant脚本.(因为对这个不是很了解,所以用词方面可能于个人的理解有偏差,谢谢指出) 如何配置Ant工具呢?下面分步骤说明:1.  下载一个java ant 开发工具,解压到相应的磁盘    例如版本:apache-ant-1.8.2-bin.tar.zip:已上传资源 2. 打开命令行,开始--- 运行----cmd --回车,然后输入ant,它会有提示说这个不是内部文件的字样.这时候用到第三部配置环境 3. 右

  • vue-cli如何快速构建vue项目

    vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. 1.安装vue-cli 使用npm全局安装vue-cli(前提是已经安装了nodejs,否则连npm都用不了) $ npm install -g vue-cli 2.创建自己的工作空间 $ vue init webpack vuetest 3.项目信息 命令输入后,会进入安装阶段,需要用户输入一些信息 Project name (vuetest) 项目名称,可以自己指定,也可直接回车,按照括号中默认名字(注意这里的名字

随机推荐