kratos v2版本命令行工具使用
使用
下载
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
查看是否安装成功
kratos -v
kratos version v2.1.3
升级
kratos upgrade
查看帮助
kratos --help
Kratos: An elegant toolkit for Go microservices.
Usage:
kratos [command]
Available Commands:
changelog Get a kratos change log
completion generate the autocompletion script for the specified shell
help Help about any command
new Create a service template
proto Generate the proto files
run Run project
upgrade Upgrade the kratos tools
Flags:
-h, --help help for kratos
-v, --version version for kratos
Use "kratos [command] --help" for more information about a command.
new命令
kratos new 命令为创建一个kratos项目
参数:
-r
repo地址 默认为https://github.com/go-kratos/kratos-layout
-b
git版本 默认为main分支-t
超时时间 默认为60s也可添加环境变量
KRATOS_LAYOUT_REPO
知道远程repo
创建一个项目
kratos new helloworld
因为默认远程仓库地址是 github上的,在国内很容易创建失败,所以要需要设置终端或者git代理(什么是终端代理和git代理可以百度或者google一下)。
当然你也可以使用-r
知道国内仓库 我们提供一个国内镜像https://gitee.com/go-kratos/kratos-layout
。
如果嫌弃每次都要-r
指定麻烦,也可以把KRATOS_LAYOUT_REPO=https://gitee.com/go-kratos/kratos-layout
加入到path中。
kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout
proto命令
proto命令下有 add
client
和 server
子命令
add
kratos proto add
为创建一个proto模板
kratos proto add api/helloworld/v2/hello.proto
在目录api/helloworld/v2
下可以看到生成的文件
syntax = "proto3";
package api.helloworld.v2;
option go_package = "helloworld/api/helloworld/v2;v2";
option java_multiple_files = true;
option java_package = "api.helloworld.v2";
service Hello {
rpc CreateHello (CreateHelloRequest) returns (CreateHelloReply);
rpc UpdateHello (UpdateHelloRequest) returns (UpdateHelloReply);
rpc DeleteHello (DeleteHelloRequest) returns (DeleteHelloReply);
rpc GetHello (GetHelloRequest) returns (GetHelloReply);
rpc ListHello (ListHelloRequest) returns (ListHelloReply);
}
message CreateHelloRequest {}
message CreateHelloReply {}
message UpdateHelloRequest {}
message UpdateHelloReply {}
message DeleteHelloRequest {}
message DeleteHelloReply {}
message GetHelloRequest {}
message GetHelloReply {}
message ListHelloRequest {}
message ListHelloReply {}
client
kratos proto client
为生成 Proto 代码
使用这个命令需要下载 protobuf 工具 protoc,可以在官网下载对应版本 Protobuf release版本
kratos proto client api/helloworld/v2/
这条命令就可以编译api/helloworld/v2/
下的所有.proto
文件
如果我们需要 import 其他proto
文件 可以在命令后面加上protoc
的参数
比如
kratos proto client api/helloworld/v2/ --proto_path=api/helloworld/v2
默认也会把 ./third_party
下import 进来 需要第三方的proto文件 可以放在这里
server
kratos proto server
为指定proto文件生成简单的service代码
参数:
-t
生成代码的位置 默认是internal/service
比如
kratos proto server api/helloworld/v2/hello.proto -t=internal/service/hello
生成的代码
package service
import (
"context"
pb "helloworld/api/helloworld/v2"
)
type HelloService struct {
pb.UnimplementedHelloServer
}
func NewHelloService() *HelloService {
return &HelloService{}
}
func (s *HelloService) ListHello(ctx context.Context, req *pb.ListHelloRequest) (*pb.ListHelloReply, error) {
return &pb.ListHelloReply{}, nil
}
run命令
启动服务
kratos run
原文地址
kratos v2版本命令行工具使用的更多相关文章
- brew 安装指定版本命令行工具 tmux 多版本实现
Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...
- 利用VS自带的命令行工具查看和生产PublicKeyToken (转)
使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...
- 利用VS自带的命令行工具查看和生产PublicKeyToken
使用VS2008(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...
- x264源代码简单分析:x264命令行工具(x264.exe)
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- OpenStack命令行工具与API
Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...
- SpringBootCLI 命令行工具
Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具.用来运行 Groovy (与 Java 风格类似)脚本. spring-cli 似乎不是可以各种diy spring-b ...
- 一个小时学会用 Go 编写命令行工具
前言 最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼"真香". 但现阶段相对来说还是 Python 写的 ...
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- Linux 性能监控之命令行工具
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
随机推荐
- XML方式配置切面
1. 概述 一个切面中需要包含什么,才能够作用到连接点?切面中是包含通知的,通知作用到连接点需要有切入点表达式. 除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面. ...
- abstract,抽象修饰符
//abstract 抽象类:类由extends继承继承表现在单继承(接口可以多继承)//abstract--约束~~有人帮我们实现抽象方法,只有方法名字,没有方法实现1.不能靠new这个抽象类,只靠 ...
- ooday05 JAVA_static final_抽象方法_抽象类
final:最终的,不可改变的-----------单独应用几率低 修饰变量:变量不能被改变 //演示final修饰变量 class Aoo{ final int num = 5; void show ...
- gitlab+jenkins自动构建jar包并发布
一.背景介绍: 公司软件都是java开发的,一般都会将java代码打包成jar包发布:为了减轻运维部署的工作量,合理偷懒,就需要自动化流程一条龙服务:开发将代码提交到gitlab--->jenk ...
- 以太坊 layer2: optimism 源码学习 (一)
作者:林冠宏 / 指尖下的幽灵.转载者,请: 务必标明出处. 掘金:https://juejin.im/user/1785262612681997 博客:http://www.cnblogs.com/ ...
- mac下安装YII
新换了台电脑,一个mac,特蛋疼的各种环境安装.两个多小时,总算把开发环境配好了. XAMPP就不用说了,phpstorm(javaEE 6.0),navicat for mysql ,一堆的注册码, ...
- EPLAN中的edz文件的用法
1 EDZ 文件的定义 EDZ 是 EPLAN Data Archive Zipped(EPLAN 数据压缩文件包)的缩写,最早是专门为西门子定制的,现在已经 成为 EPLAN 中一种标准的部件 ...
- 如何使用Solidity和Hardhat构建你自己的NFT以及NFT交易市场
目录 目录 目录 1.ERC721的基础知识 1.1.什么是不可替代代币? 1.2.什么是 ERC-721? 1.3.什么是元数据 1.4.如何在链上保存NFT的图像 2.HardHat 3.创建项目 ...
- 越折腾越好用的 3 款开源 APP
高中的时候我特别喜欢捣鼓手机,然后我一个哥们儿在我的强烈推荐下买了个 HTC Dream(G1) 手机. G1 作为谷歌的第一个亲儿子,它出厂搭载的是 Android 1.5 系统,但当时已经出到了 ...
- Uniapp---快速生成安卓证书keystore文件
在用Uniapp开发项目的时候,APP上线,就需要用到安卓证书,当然网上有很多生成证书的教程,各种安装,各种命令,下面就介绍两种快速方便的生成证书的方法: 第一种:在线证书生成: http://www ...