2.1.13 • Published 6 years ago

moria-cli v2.1.13

Weekly downloads
159
License
ISC
Repository
-
Last release
6 years ago

moria-cli 2.0

moria-cli 2.0 创建基于spring cloud的脚手架

moria-cli的目标

  • 快速创建moria微服务
  • 构建微服务的docker镜像
  • 将微服务镜像推送到harbor

准备条件

  • npm >= v7.7.0
  • docker >= v1.13, 已经启动
  • maven , 如果已经安装docker,则可以不安装maven
  • 联网

安装moria-cli

npm i -g moria-cli

目前支持的命令为

  • config
  • create
  • package
  • build
  • deploy
  • update

使用方法

使用帮助

moria-cli help

查看某个命令的帮助

moria-cli <command> -h

创建moria微服务

moria-cli create -g <my.groupid> -a <my-artifactId>

这会在当前文件夹下生成一个 的moria微服务工程。 用户可以在此基础上进行业务开发。

如果 -g 或 -a 没有提供,会进入交互模式,输入groupId 和 artifactId。 artifactId 会做为项目名称,贯穿整个moria操作。

项目打包(在微服务工程根目录调用)

moria-cli package

如果打包成功,会在项目根目录生成 target目录。

该命令可选执行,通常用于验证代码的正确性。失败表示代码存在问题

项目配置(在微服务工程根目录调用)

moria-cli config

交互式输入配置,包含docker仓库,登录设置,通知url。

如果不进行配置,会使用默认选项 config后会生成文件保存与 $HOME/.moria.json

构建微服务镜像(在微服务工程根目录调用)

moria-cli build

构建当前工程,并生成一个docker镜像。

  1. 使用 <user/groupId:version> 做为 imageTag。
  2. 项目本身必须能够通过mvn构建成功,否则会导致构建失败。
  3. 建议执行此步之前执行 moria-cli package

部署微服务

moria-cli deploy

将当前工程推送到docker仓库,并通知云端。通知的接口数据包含。现在上送后台的接口为

environment:  '${docker_ns}',
name:         '${项目名}',
imageRepo:    '${镜像名}',
tag:          ['微服务'],
jarFile:      '${jar在镜像中的路径}',
description:  'user=${docker登录用户}, app=${项目名}',
  • 镜像repo
  • 镜像tag
  • jar包所在的位置

get started

  • 首先 moria-cli create -g com.myapp -a helloworld,创建微服务 hellowrold。
  • 使用ide(如eclipse / idea等)打开项目进行开发。
  • 开发完毕 moria-cli package,打包验证项目是否OK。
  • 使用 moria-deploy push这个镜像,并通知后台

npm.io

平台支持

platform支持情况
centos7.2通过
ubuntu16.04通过
macos通过 (无法自动配置docker, 需手动配置)
win10 Pro未测试 build / deploy

扩展

项目结构

/
.
├── bin
│   └── moria-cli
├── index.js
├── lib
│   ├── build.js
│   ├── common
│   │   ├── MoriaCore.js
│   │   ├── moriaError.js
│   │   └── specification.js
│   ├── config
│   │   ├── configUtil.js
│   │   └── defaultConf.js
│   ├── config.js
│   ├── create.js
│   ├── deploy.js
│   ├── help.js
│   ├── package.js
│   └── utils
│       ├── checkRequisite.js
│       ├── executor.js
│       ├── getUserInput.js
│       ├── logger.js
│       ├── parsePom.js
│       └── trimCmdSpace.js
├── package.json
├── README.md
└── src
    └── moria-cli.png
  • 程序的入口在 bin/moria-cli
const ALL_COMMAND = [
  'help',
  'config',
  'create',
  'package',
  'build',
  'deploy',
  'update'
];
  • 命令的实现在 lib/ 中 注意每个在 moria-cli中的命令,都需要一个 lib/ 下的单独文件匹配。 如lib/create.js 对应了 命令 create 的实现。但是实际上核心实现在 lib/common/MoriaCore.js
  • lib/common 文件夹下放置了核心实现和规范,以及错误定义
MoriaCore.js     ---- moria-cli 生命周期中的 元操作
moriaError.js    ---- 自定义错误
specification.js ---- 规范配置文件位置,镜像名称,镜像信息的地方
  • utils 放置了一些工具类 工具类的特点就是 不会require utils包外自己写的代码,无状态

#moria-spring-cloud moria-spring-cloud是moria平台构架脚手架的骨架工程(archetpye)

  • 创建镜像 docker build -t foreveross/maven .

  • 提交到harbor

  • 生成脚手架(moria-cli create命令可创建,解释)

docker run -i                                                 \
    -w /home                                                  \
    -v /Users/Aaron:/home                                     \
    -v /Users/Aaron/.m2:/root/.m2                             \
    --rm                                                      \
    foreveross/maven                                          \
    mvn archetype:generate                                    \
    -DarchetypeVersion=1.0.0-RELEASE                          \
    -DarchetypeGroupId=moria.io                               \
    -DarchetypeArtifactId=moria-spring-cloud-archetype        \
    -DarchetypeCatalog=local                                  \
    -DgroupId=foreveross.com                                  \
    -Dversion=0.01                                            \
    -DartifactId=my-app                                       \
    -DinteractiveMode=false   

命令说明: -DarchetypeGroupId=com.xxx 脚手架的groupId -DarchetypeArtifactId=archetype-spring-boot 脚手架的artifactId -DarchetypeVersion=1.0.0 脚手架版本 -DgroupId=com.xxx 需要生成的项目groupId -DartifactId=demo-archetype-generate 需要生成的项目artifactId -Dversion=1.0.0 需要生成的版本号 -DarchetypeCatalog=internal 使用私有仓库脚手架jar包, 前提:已经把脚手架发布到私有仓库中 -DarchetypeCatalog=local 使用本地脚手架jar包, 如果不配置, 它会到中央仓库去下载, 会导致失败 -X debug模式 -DinteractiveMode=false 是否在生成的时候再次确认

使用方式: 使用本地仓库需要 install一次, 再到需要生成项目的目录下去执行命令。 使用私有仓库脚手架,不需要clone项目,只需要配置好maven,settting.xml,并执行以上命令即可

2.1.13

6 years ago

2.1.12

6 years ago

2.1.10

6 years ago

2.1.9

6 years ago

2.1.8

6 years ago

2.1.7

6 years ago

2.1.6

6 years ago

2.1.5

6 years ago

2.1.4

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.83

7 years ago

2.0.82

7 years ago

2.0.80

7 years ago

2.0.79

7 years ago

2.0.78

7 years ago

2.0.77

7 years ago

2.0.76

7 years ago

2.0.75

7 years ago

2.0.74

7 years ago

2.0.73

7 years ago

2.0.72

7 years ago

2.0.71

7 years ago

2.0.70

7 years ago

2.0.69

7 years ago

2.0.68

7 years ago

2.0.67

7 years ago

2.0.66

7 years ago

2.0.65

7 years ago

2.0.64

7 years ago

2.0.63

7 years ago

2.0.62

7 years ago

2.0.61

7 years ago

2.0.60

7 years ago

2.0.59

7 years ago

2.0.57

7 years ago

2.0.56

7 years ago

2.0.55

7 years ago

2.0.54

7 years ago

2.0.53

7 years ago

2.0.52

7 years ago

2.0.51

7 years ago

2.0.50

7 years ago

2.0.49

7 years ago

2.0.48

7 years ago

2.0.47

7 years ago

2.0.46

7 years ago

2.0.45

7 years ago

2.0.44

7 years ago

2.0.43

7 years ago

2.0.42

7 years ago

2.0.41

7 years ago

2.0.40

7 years ago

2.0.39

7 years ago

2.0.38

7 years ago

2.0.37

7 years ago

2.0.35

7 years ago

2.0.34

7 years ago

2.0.33

7 years ago

2.0.32

7 years ago

2.0.31

7 years ago

2.0.30

7 years ago

2.0.29

7 years ago

2.0.28

7 years ago

2.0.27

7 years ago

2.0.26

7 years ago

2.0.25

7 years ago

2.0.24

7 years ago

2.0.23

7 years ago

2.0.22

7 years ago

2.0.21

7 years ago

2.0.20

7 years ago

2.0.19

7 years ago

2.0.17

7 years ago

2.0.16

7 years ago

2.0.15

7 years ago

2.0.14

7 years ago

2.0.13

7 years ago

2.0.12

7 years ago

2.0.11

7 years ago

2.0.10

7 years ago

2.0.9

7 years ago

2.0.8

7 years ago

2.0.7

7 years ago

2.0.6

7 years ago

2.0.5

7 years ago

2.0.4

7 years ago

2.0.3

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.64

7 years ago

1.0.63

7 years ago

1.0.62

7 years ago

1.0.61

7 years ago

1.0.60

7 years ago

1.0.59

7 years ago

1.0.57

7 years ago

1.0.56

7 years ago

1.0.55

7 years ago

1.0.54

7 years ago

1.0.53

7 years ago

1.0.52

7 years ago

1.0.51

7 years ago

1.0.50

7 years ago

1.0.49

7 years ago

1.0.48

7 years ago

1.0.47

7 years ago

1.0.46

7 years ago

1.0.45

7 years ago

1.0.44

7 years ago

1.0.43

7 years ago

1.0.42

7 years ago

1.0.41

7 years ago

1.0.40

7 years ago

1.0.39

7 years ago

1.0.38

7 years ago

1.0.37

7 years ago

1.0.36

7 years ago

1.0.35

7 years ago

1.0.34

7 years ago

1.0.33

7 years ago

1.0.32

7 years ago

1.0.31

7 years ago

1.0.30

7 years ago

1.0.29

7 years ago

1.0.28

7 years ago

1.0.27

7 years ago

1.0.26

7 years ago

1.0.25

7 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.19

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago