Nepxion Skeleton是一款基于FreeMarker,支持对任何文本格式的代码和文件的生成器,可以轻松快速实现对框架代码的一键创建,支持多套脚手架系统在同一个脚手架服务下工作,并内置提供Docker化的基于Spring Cloud的脚手架一键生成
图1
图2
图3
图4
图5
图6
最新版本兼容
引擎包
<dependency>
<groupId>com.nepxion</groupId>
<artifactId>skeleton-engine</artifactId>
<version>${skeleton.version}</version>
</dependency>
框架包
<dependency>
<groupId>com.nepxion</groupId>
<artifactId>skeleton-framework</artifactId>
<version>${skeleton.version}</version>
</dependency>
启动包
<dependency>
<groupId>com.nepxion</groupId>
<artifactId>skeleton-starter</artifactId>
<version>${skeleton.version}</version>
</dependency>
@SpringBootApplication
@EnableSkeleton
@Import(SpringCloudPluginConfiguration.class)
public class SkeletonApplication {
}
如果多个脚手架系统部署在同一个平台上,需要采用独立工程的方式,同时避免同名类和同名配置文件冲突,规定如下,见图7
如果一个脚手架系统部署在一个平台上,那么则没有那么多讲究,规定如下,见图8
图7
图8
运行skeleton-plugin-springcloud/src/test/java/com.nepxion.skeleton.plugin.springcloud.SkeletonTest.java,可在本地创建脚手架文件,具体使用方式,参考该类里的中文注释
Spring Cloud配置文件,见skeleton-service/src/main/resources/application.properties
Spring Cloud接口,见skeleton-framework/src/main/java/com.nepxion.skeleton.framework.controller.SkeletonController.java
@RequestMapping(value = "/getPlugins", method = RequestMethod.GET)
public List<String> getPlugins();
@RequestMapping(value = "/getMetaData", method = RequestMethod.GET)
public List<SkeletonGroup> getMetaData();
返回JSON格式的文件,如下:
[
{
"key": "project", // 组所对应的唯一Key
"label": "工程配置", // 组的标签
"description": "工程配置", // 组的描述
"type": "MIX_GROUP", // 组的类型,包括MIX_GROUP(默认,组里可以放任何种类的组件,混合组),CHECKBOX_GROUP(组里只能放CHECKBOX),RADIO_GROUP(组里只能放RADIO),COMBOBOX_GROUP(组里只能放COMBOBOX)
"layout": "VERTICAL", // 组的布局,包括VERTICAL(默认,组里组件以垂直方向布局),HORIZONTAL(默认,组里组件以水平方向布局)
"titledBorder": "true", // 是否需要显示组标题(默认显示)
"entityList": [
{
"key": "productName", // 组件所对应的唯一Key
"label": "产品名", // 组件的标签
"description": "", // 组件的描述
"note": "【必改项】首字母必须小写,中间只允许出现“-”", // 组件的使用提示
"value": "sales", // 组件内容
"type": "TEXTFIELD", // 组件类型,包括TEXTFIELD(默认),CHECKBOX,RADIO,COMBOBOX,EDITABLE_COMBOBOX
"options": null, // 对应项如果是下来菜单(COMBOBOX,EDITABLE_COMBOBOX)方式的时候,里面的值列表,可以为null
"highlightable": true, // 标识为高亮项,一般组件渲染成高亮方式,例如Label红色字体,提示使用者着重关注
"defaultable": false, // 标识为默认项,一般组件渲染成默认项方式,提示使用者可以不修改对应值
"emptiable": false, // 标识为留空项,一般组件渲染成留空项方式,提示使用者对应值可以为空
"editable": true // 标识为不可编辑项,一般组件渲染成不可编辑项方式,如果false则把组件灰掉,提示使用者对应值不可编辑
}
]
}
]
@RequestMapping(value = "/getMetaData/{skeletonName}", method = RequestMethod.GET)
public List<SkeletonGroup> getMetaData(@PathVariable(value = "skeletonName") String skeletonName);
@RequestMapping(value = "/downloadBytes/{skeletonName}", method = RequestMethod.POST)
public byte[] downloadBytes(@PathVariable(value = "skeletonName") String skeletonName, @RequestBody String config);
@RequestMapping(value = "/downloadResponse/{skeletonName}", method = RequestMethod.POST)
public ResponseEntity<Resource> downloadResponse(@PathVariable(value = "skeletonName") String skeletonName, @RequestBody String config);
微信、钉钉、公众号和文档
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.