后端脚手架生成工程

后端脚手架生成工程

脚手架版本

  • 6.2.x(6.3.x/6.4.x)版本的脚手架,修改脚本(参考下节内容)中脚手架版本:

    # 新项目的pamirs platform version
    pamirsVersion=6.2.8
    ……
    # mvn archetype:generate执行片段中
    -DarchetypeVersion=6.2.8
  • 7.0.x版本的脚手架,修改脚本(参考下节内容)中脚手架版本:

    # 新项目的pamirs platform version
    pamirsVersion=7.0.5
    ……
    # mvn archetype:generate执行片段中
    -DarchetypeVersion=7.0.5 

后端脚手架生成工程

后端单工程脚手架

1、使用如下命令来用项目脚手架生成工程:新建archetype-project-generate.sh(bat) 脚本

  • archetype-project-generate.sh
#!/bin/bash

# 项目生成脚手架
# 用于新项目的构建

# 脚手架使用目录
# 本地 local
# 本地脚手架信息存储路径 ~/.m2/repository/archetype-catalog.xml
archetypeCatalog=local

# 以下参数以pamirs-demo为例

# 新项目的groupId
groupId=pro.shushi.pamirs.demo

# 新项目的artifactId
artifactId=pamirs-demo

# 新项目的version
version=1.0.0-SNAPSHOT

# Java包名前缀
packagePrefix=pro.shushi

# Java包名后缀
packageSuffix=pamirs.demo

# 新项目的pamirs platform version;根据上个章节中的版本介绍进行修改
pamirsVersion=6.2.8

# Java类名称前缀
javaClassNamePrefix=Demo

# 项目名称 module.displayName
projectName=OinoneDemo

# 模块 MODULE_MODULE 常量
moduleModule=demo_core

# 模块 MODULE_NAME 常量
moduleName=DemoCore

# spring.application.name
applicationName=pamirs-demo

# tomcat server address
serverAddress=0.0.0.0

# tomcat server port
serverPort=8090

# redis host
redisHost=127.0.0.1

# redis port
redisPort=6379

# 数据库名
db=demo

# zookeeper connect string
zkConnectString=127.0.0.1:2181

# zookeeper rootPath
zkRootPath=/demo

mvn archetype:generate \
  -DinteractiveMode=false \
  -DarchetypeCatalog=${archetypeCatalog} \
  -DarchetypeGroupId=pro.shushi.pamirs.archetype \
  -DarchetypeArtifactId=pamirs-project-archetype \
  -DarchetypeVersion=6.2.8 \  #根据上个章节中的版本介绍进行修改
  -DgroupId=${groupId} \
  -DartifactId=${artifactId} \
  -Dversion=${version} \
  -DpamirsVersion=${pamirsVersion} \
  -Dpackage=${packagePrefix}.${packageSuffix} \
  -DpackagePrefix=${packagePrefix} \
  -DpackageSuffix=${packageSuffix} \
  -DjavaClassNamePrefix=${javaClassNamePrefix} \
  -DprojectName="${projectName}" \
  -DmoduleModule=${moduleModule} \
  -DmoduleName=${moduleName} \
  -DapplicationName=${applicationName} \
  -DserverAddress=${serverAddress} \
  -DserverPort=${serverPort} \
  -DredisHost=${redisHost} \
  -DredisPort=${redisPort} \
  -Ddb=${db} \
  -DzkConnectString=${zkConnectString} \
  -DzkRootPath=${zkRootPath}
  • archetype-project-generate.bat
@echo off
:: 项目生成脚手架
set archetypeCatalog=local
set groupId=pro.shushi.pamirs.demo
set artifactId=pamirs-demo
set version=1.0.0-SNAPSHOT
set packagePrefix=pro.shushi
set packageSuffix=pamirs.demo
set pamirsVersion=6.2.8
set javaClassNamePrefix=Demo
set projectName=OinoneDemo
set moduleModule=demo_core
set moduleName=DemoCore
set applicationName=pamirs-demo
set serverAddress=0.0.0.0
set serverPort=8090
set redisHost=127.0.0.1
set redisPort=6379
set db=demo
set zkConnectString=127.0.0.1:2181
set zkRootPath=/demo

mvn archetype:generate ^
  -DinteractiveMode=false ^
  -DarchetypeCatalog=%archetypeCatalog% ^
  -DarchetypeGroupId=pro.shushi.pamirs.archetype ^
  -DarchetypeArtifactId=pamirs-project-archetype ^
  -DarchetypeVersion=%pamirsVersion% ^
  -DgroupId=%groupId% ^
  -DartifactId=%artifactId% ^
  -Dversion=%version% ^
  -DpamirsVersion=%pamirsVersion% ^
  -Dpackage=%packagePrefix%.%packageSuffix% ^
  -DpackagePrefix=%packagePrefix% ^
  -DpackageSuffix=%packageSuffix% ^
  -DjavaClassNamePrefix=%javaClassNamePrefix% ^
  -DprojectName="%projectName%" ^
  -DmoduleModule=%moduleModule% ^
  -DmoduleName=%moduleName% ^
  -DapplicationName=%applicationName% ^
  -DserverAddress=%serverAddress% ^
  -DserverPort=%serverPort% ^
  -DredisHost=%redisHost% ^
  -DredisPort=%redisPort% ^
  -Ddb=%db% ^
  -DzkConnectString=%zkConnectString% ^
  -DzkRootPath=%zkRootPath%

2、根据项目需求,根据脚本中的注释修改项目变量

3、确保Maven的settings文件是用的是数式发过去的对应的配置文件

4、Linux/Unix/Mac 需要执行以下命令添加执行权限; Windows下如果安装了git可以使用Git Bash执行Linux(sh)命令

chmod +x archetype-project-generate.sh

5、根据不同的操作系统执行脚手架命令
Linux/Unix/Mac/Windows(Git Bash):

 sh archetype-project-generate.sh 

Windows(CMD):

 archetype-project-generate.bat

6、执行完成后即可生成工程,生成的最终工程后根据实际情况进行一些修改

  • boot工程resources/static的index.html, 去掉前面3行多余的代码.( Velocity 模板变量问题导致)
    后端脚手架生成工程
  • 替换licence,包括licence文件和yml文件中licence的配置;
  • 替换yml文件中的OSS配置和中间件端口/地址/密码等;
  • 根据实际使用的版本情况,修改主pom中的版本号:
    <oinone-bom.version>7.0.5.1</oinone-bom.version>

    后端脚手架生成工程

后端多工程模块脚手架

1、使用如下命令来用项目脚手架生成模块工程:新建archetype-module-generate.sh(bat) 脚本

  • archetype-module-generate.sh
#!/bin/bash

# 模块生成脚手架
# 用于项目中构建新模块,注意: 该脚本应在项目根目录下执行

# 脚手架使用目录
# 本地 local
archetypeCatalog=local

# 以下参数以pamirs-demo为例

# 父项目的groupId
pamirsParentGroupId=pro.shushi.pamirs.demo

# 父项目的artifactId
pamirsParentArtifactId=pamirs-demo

# 父项目的version
pamirsParentVersion=1.0.0-SNAPSHOT

# 子项目的模块名
module=common

# 包名前缀
packagePrefix=pro.shushi

# 包名后缀
packageSuffix=pamirs.demo.common

# Java类名称前缀
javaClassNamePrefix=DemoCommon

# 项目名称
projectName=公共资源中心

# 模块 MODULE_MODULE 常量
moduleModule=demo_common

# 模块 MODULE_NAME 常量
moduleName=DemoCommon

# spring.application.name
applicationName=pamirs-demo-common

# tomcat server address
serverAddress=0.0.0.0

# tomcat server port
serverPort=8090

# 数据库名
db=demo

# zookeeper connect string
zkConnectString=127.0.0.1:2181

# zookeeper rootPath
zkRootPath=/demo

# redis host
redisHost=127.0.0.1

# redis port
redisPort=6379

mvn archetype:generate \
  -DinteractiveMode=false \
  -DarchetypeCatalog=${archetypeCatalog} \
  -DarchetypeGroupId=pro.shushi.pamirs.archetype.module \
  -DarchetypeArtifactId=pamirs-project-module-archetype \
  -DarchetypeVersion=7.0.5 \
  -DpamirsParentGroupId=${pamirsParentGroupId} \
  -DpamirsParentArtifactId=${pamirsParentArtifactId} \
  -DpamirsParentVersion=${pamirsParentVersion} \
  -DgroupId=${pamirsParentGroupId}.${module} \
  -DartifactId=${pamirsParentArtifactId}-${module} \
  -Dversion=${pamirsParentVersion} \
  -Dmodule=${module} \
  -Dpackage=${packagePrefix}.${packageSuffix} \
  -DpackagePrefix=${packagePrefix} \
  -DpackageSuffix=${packageSuffix} \
  -DjavaClassNamePrefix=${javaClassNamePrefix} \
  -DprojectName=${projectName} \
  -DmoduleModule=${moduleModule} \
  -DmoduleName=${moduleName} \
  -DapplicationName=${applicationName} \
  -DserverAddress=${serverAddress} \
  -DserverPort=${serverPort} \
  -Ddb=${db} \
  -DzkConnectString=${zkConnectString} \
  -DzkRootPath=${zkRootPath} \
  -DredisHost=${redisHost} \
  -DredisPort=${redisPort} \
  -Pshushi
  • archetype-module-generate.bat
@echo off
:: 模块生成脚手架
:: 用于项目中构建新模块,注意: 该脚本应在项目根目录下执行

:: 脚手架使用目录
:: 本地 local
set archetypeCatalog=local

:: 以下参数以kailas-libra-common为例

:: 父项目的groupId
set pamirsParentGroupId=pro.shushi.pamirs.demo

:: 父项目的artifactId
set pamirsParentArtifactId=pamirs-demo

:: 父项目的version
set pamirsParentVersion=1.0.0-SNAPSHOT

:: 子项目的模块名
set module=common

:: 包名前缀
set packagePrefix=pro.shushi

:: 包名后缀
set packageSuffix=pamirs.demo.common

:: Java类名称前缀
set javaClassNamePrefix=DemoCommon

:: 项目名称
set projectName=公共资源中心

:: 模块 MODULE_MODULE 常量
set moduleModule=demo_common

:: 模块 MODULE_NAME 常量
set moduleName=DemoCommon

:: spring.application.name
set applicationName=pamirs-demo-common

:: tomcat server address
set serverAddress=0.0.0.0

:: tomcat server port
set serverPort=8090

:: 数据库名
set db=demo

:: zookeeper connect string
set zkConnectString=127.0.0.1:2181

:: zookeeper rootPath
set zkRootPath=/demo

:: redis host
set redisHost=127.0.0.1

:: redis port
set redisPort=6379

mvn archetype:generate ^
  -DinteractiveMode=false ^
  -DarchetypeCatalog=%archetypeCatalog% ^
  -DarchetypeGroupId=pro.shushi.pamirs.archetype.module ^
  -DarchetypeArtifactId=pamirs-project-module-archetype ^
  -DarchetypeVersion=7.0.5 ^
  -DpamirsParentGroupId=%pamirsParentGroupId% ^
  -DpamirsParentArtifactId=%pamirsParentArtifactId% ^
  -DpamirsParentVersion=%pamirsParentVersion% ^
  -DgroupId=%pamirsParentGroupId%.%module% ^
  -DartifactId=%pamirsParentArtifactId%-%module% ^
  -Dversion=%pamirsParentVersion% ^
  -Dmodule=%module% ^
  -Dpackage=%packagePrefix%.%packageSuffix% ^
  -DpackagePrefix=%packagePrefix% ^
  -DpackageSuffix=%packageSuffix% ^
  -DjavaClassNamePrefix=%javaClassNamePrefix% ^
  -DprojectName=%projectName% ^
  -DmoduleModule=%moduleModule% ^
  -DmoduleName=%moduleName% ^
  -DapplicationName=%applicationName% ^
  -DserverAddress=%serverAddress% ^
  -DserverPort=%serverPort% ^
  -Ddb=%db% ^
  -DzkConnectString=%zkConnectString% ^
  -DzkRootPath=%zkRootPath% ^
  -DredisHost=%redisHost% ^
  -DredisPort=%redisPort% ^
  -Pshushi

2、后续脚本的执行请参考 后端单工程脚手架.

Oinone社区 作者:望闲原创文章,如若转载,请注明出处:https://doc.oinone.top/other/21573.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

Like (0)
望闲's avatar望闲数式管理员
Previous 2025年8月21日 pm2:13
Next 2025年8月26日 pm4:55

相关推荐

  • IP黑白名单实现拦截三方用户

    已知厂商IP为10.139.0.1,经系统检测122.233.24.28、138.122.12.9为风险IP,需要禁止访问。 白名单配置:10.139.0.1 黑名单配置:122.233.24.28、138.122.12.9 厂商请求到Oinone开放平台请求头需携带X-Forwarded-For和X-Real-IP,例如: X-Forwarded-For 122.233.24.28 X-Real-IP 122.233.24.28 经Nginx代理后,oinone获取的请求头内容: X-Forwarded-For 122.233.24.28, 10.139.0.1 # 代理追加厂商IP到末尾 X-Real-IP 122.233.24.28 # 保持客户端原始值,Nginx不处理 效果:厂商10.139.0.1发送的请求且用户X-Real-IP不在黑名单内才放行。 注意事项 Nginx如果配置X-Real-IP需关闭,否则拿到的永远是厂商IP。 proxy_set_header X-Real-IP $remote_addr; 相关文章 开放应用中的ip黑白名单

    2025年5月15日
    56300
  • 前端自定义组件之锚点分组

    本文将讲解如何通过自定义,实现锚点组件。这个锚点组件会根据界面设计器拖入的分组,动态解析出锚点。 实现路径 整体的实现思路是界面设计器拖个容器类的组件(这里以选项卡为例),自定义这个选项卡,往选项卡里拖拽的每个分组,每个锚点的名称是分组的标题。 1. 界面设计器拖出页面 我们界面设计器拖个选项卡组件,然后在选项页里拖拽任意多个分组。完成后点击右上角九宫格,选中选项卡,填入组件 api 名称,作用是把选项卡切换成我们自定义的锚点分组组件,这里的 api 名称和自定义组件的 widget 对应。最后发布页面,并绑定菜单。 2. 组件实现 widget 组件重写了选项卡,核心函数 renderGroups,通过 DslRender.render 方法渲染界面设计器拖拽的分组。 import { BasePackWidget, DslDefinition, DslRender, SPI, Widget } from '@oinone/kunlun-dependencies'; import TabsParseGroup from './TabsParseGroup.vue'; function fetchGroupChildren(widgets?: DslDefinition[], level = 1): DslDefinition[] { if (!widgets) { return []; } const children: DslDefinition[] = []; for (const widget of widgets) { if (widget.widget === 'group') { children.push(widget); } else if (level >= 1) { fetchGroupChildren(widget.widgets, level – 1).forEach((child) => children.push(child)); } } return children; } @SPI.ClassFactory( BasePackWidget.Token({ widget: 'TabsParseGroup' }) ) export class TabsParseGroupWidget extends BasePackWidget { public initialize(props) { super.initialize(props); this.setComponent(TabsParseGroup); return this; } // 获取分组的子元素 public get groupChildren(): DslDefinition[] { return fetchGroupChildren(this.template?.widgets); } @Widget.Reactive() public get groupTitles() { return this.groupChildren.map((group) => group.title); } // 根据容器子元素渲染左侧 @Widget.Method() public renderGroups() { if (this.groupChildren && this.groupChildren.length) { return this.groupChildren.map((group) => DslRender.render(group)); } } } vue组件核心内容是用component :is属性,渲染出配置的分组组件 <template> <div class="TabsParseGroup"> <a-anchor :affix="false"> <a-anchor-link v-for="(item, index) in groupTitles" :href="`#default-group-${index}`" :title="item" /> </a-anchor> <div v-for="(item, index) in groupComponents" :id="`default-group-${index}`"> <component :is="item" /> </div> </div> </template> <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; export default…

    2025年7月8日
    51000
  • 数式Oinone培训前注意事项

    一、快速上手 (建议至少预习 6 小时) 在正式培训之前,建议需要完成以下任务,以便对培训内容有基本了解: 点击阅读:快速启动入门 该文档为学员提供了从入门到实现 demo 的全过程说明,涵盖了开发工具、框架搭建、常见问题解答等内容 开始培训前,请参与人员确保完成以下任务 阅读并理解文档中的每个步骤。 配置好前后端开发环境。 完成 demo 的基础框架搭建,验证是否能够成功运行。 二、预期成果 通过上述预习,大家完成以下事项:• 成功搭建本地开发环境,并能运行前后端的基本 demo。• 对前后端技术栈有初步了解,为正式培训中的深度学习打下基础,并且提出对应的疑问点 三、其他准备工作 1.技术工具检查:请确在本地已安装并配置好必要的开发工具和环境(如 IDE、Node.js、数据库等);2.参与者反馈:在预习过程中,学员如遇到困难或无法解决的问题(前后端疑问),请提前记录并提交,以便培训期间重点解答;3.版本是否是最新的版本,且建议研发人员版本一致,且类型是 mini; ps:部署包相关信息,联系数式相关人员获取

    未分类 2024年8月2日
    3.2K00

Leave a Reply

Please Login to Comment