luban/docs/luban_comman_tools.md

226 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 部属
Luban工具有两种部属方式。
### 方法1 Luban.Client与Luban.Server独立部属云生成模式
#### 部属 luban-server
- 基于 docker (强烈推荐以这种方式在服务器上部属luban-server因为可以充分利用缓存机制大幅缩短生成时间)
docker run -d --rm --name luban-server -p 8899:8899 focuscreativegames/luban-server:latest
- 基于 .net 5 runtime (可跨平台,不需要重新编译)
- 自行安装 .net 5 runtime.
- 从[示例项目](https://github.com/focus-creative-games/luban_examples/tree/main/Tools/Luban.Server)拷贝 Luban.Server**可跨平台即使在linux、mac平台也不需要重新编译**
- 在Luban.Server目录下运行 dotnet Luban.Server.dll (提示Win平台可以直接运行 Luban.Server.exe)
#### 安装 luban-client
- 基于 docker (只推荐与jenkins之类devops工具配合使用因为docker容器启动会增加一定的延迟)
docker run --rm -v $PWD/.cache.meta:/bin/.cache.meta focuscreativegames/luban-client <参数>
提醒! .cache.meta这个文件用于保存本地生成或者提交到远程的文件md5缓存**强烈推荐** 添加-v $PWD/.cache.meta:/bin/.cache.meta 映射不然每次重新计算所有涉及文件的md5,这可能在项目后期会造成多达几秒的延迟。
- 基于 .net 5 runtime 推荐win平台使用可跨平台不需要重新编译
- 自行安装 .net 5 runtime.
- 从[示例项目](https://github.com/focus-creative-games/luban_examples/tree/main/Tools/Luban.Client)拷贝 Luban.Client**可跨平台即使在linux、mac平台也不需要重新编译**
### 方法2 Client与Server一体模式
Client与Server在同个进程内运行不需要单独部属Luban.Server。
将运行脚本中%LUBAN_CLIENT%变量由 Luban.Client/Luban.Client 改为 Luban.ClientServer/Luban.ClientServer同时删除 -h (--host ) 选项及其参数(如果指定了-h选项则不启动内嵌Luban.Server使用云生成
Luban.ClientServer是Luban.Client的功能超集可以完全替代Luban.Client。
-----
## 使用
### luban-server 使用介绍
命令行使用
dotnet Luban.Server.dll [-p <port>] [-l <log level>]
参数介绍:
-p <port> 可选参数。 监听端口 <port>默认为8899。
-l <log level> 可选参数。 日志级别。默认为INFO。 有效值有: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
## luban-client 使用介绍
命令行使用
dotnet Luban.Client.dll [-h <host>] [-p <port>] [-l <log level>] [-c <cache meta file>] [-w <watch dirs>] [-h ] -j cfg -- <job options>
参数介绍:
-h,--host <host> 可选参数。 luban-server的地址。默认为 127.0.0.1
-p,--port <port> 可选参数。 luban-server的端口。默认为 8899
-j,--job <job> 必选参数。 生成类型。目前支持的生成类型有: cfg,proto,db。 生成配置请取cfg。
-l,--loglevel <log level> 可选参数。 日志级别。默认为INFO。有效值有: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
-c,--cachemetafile <meta file> 可选参数。 meta缓存文件名。 默认为 .cache.meta
-w,--watch <dir1;dir2...> 可选参数。 监测目录或者目录列表,以逗号';'分隔。当开启此选项后,生成结束后不会退出程序,而是进入自动生成模式。监听到目标目录发生变化后,自动重新运行生成。省去改动后手动运行生成脚本的麻烦。
--generateonly 可选参数。 仅生成。不从服务器下载生成结果。可以用于检查服务器是否能成功生成。
-h,--help 可选参数。显示帮助信息
-- <job options> 必选参数。 从此参数起,便是 不同job的特有选项
----
cfg的<job options>介绍:
-d,--define_file <root file> 必选参数。 根定义文件名。
--input_data_dir <input data dir> 必选参数。 配置数据文件根目录。
-c,--output_code_dir <output code dir> 可选参数。 生成代码文件的目录。
-s,--service 必选参数。生成分组目标。一般来说会定义client,server,editor等好几个目标不同目标的生成内容不同。
--gen_types <type1,type2,,,> 必选参数。生成任务类型。既可以是生成代码也可以是生成数据或者其他。目前支持的有 code_cs_bin,code_cs_json,code_cs_unity_json,code_lua_bin,code_java_bin,code_go_bin,code_go_json,code_cpp_bin,code_python27_json,code_python3_jsoncode_typescript_bin,code_typescript_json,data_bin,data_lua,data_json,data_json_monolithic,data_template
--output_data_dir <output data dir> 可选参数。 导出的数据文件的目录。
--validate_root_dir <path validate root dir>. 可选参数。 配置path检查的根目录。
--export_test_data 可选参数。 是否导出测试数据。默认为false
--template_name <template name> 可选参数。数据模板的名称不包含后缀当gen_types包含 data_template时必须指定。
--data_file_extension <output data file extension> 可选参数。 导出数据文件的后缀。默认按照生成类型自动选择。
-t,--l10n_timezone <timezone> 可选参数。 指定所在时区。影响datetime类型转换为utc时间。 默认为中国北京时间。
--input_l10n_text_files <file1,file2..> 可选参数。 本地化的文本映射表。可以有多个。
--l10n_text_field_name <field name> 可选参数。 文本映射表中目标映射列的列名默认为text
--output_l10n_not_translated_text_file <file> 可选参数。 未被本地化映射的text key和value的输出文件。不提供该参数则不生成
--patch <patch name> 可选参数。当前需要生成的分支名称。
--patch_input_data_dir <patch data root dir> 可选参数。分支数据的根目录。
## 示例
假设
luban.server 运行在本机端口为8899
luban.client的位置在 d:\tools\Luban.Client
配置定义在 d:\raw_config\defines
配置定义的根定义文件为 d:\raw_config\defines\__root__.xml
配置数据在 d:\raw_configs\datas
client项目为unity项目位置在 d:\client
你期望client生成的代码在 d:\client\Assets\Gen 目录
你期望client生成的数据在 d:\client\Assets\StreamingAssets\GameData 目录
你们服务器项目为 dotnet c#项目位置在d:\server
你期望server生成的代码在 d:\server\src\Gen
你期望server生成的数据在 d:\server\GameData
案例1
你要为客户端生成代码和数据。
你期望使用bin格式的导出数据类型
你为客户端选择的service分组为 client
当前在开发期,你期望导出数据中包含测试数据
则win下命令为
dotnet d:\tools\Luban.Client\Luban.Client.dll ^
-h 127.0.0.1 ^
-p 8899 ^
-j cfg ^
-- ^
--define_file d:\raw_config\defines\__root__.xml ^
--input_data_dir d:\raw_configs\datas ^
--output_code_dir d:\client\Assets\Gen ^
--output_data_dir d:\client\Assets\StreamingAssets\GameData ^
--gen_types code_cs_bin,data_bin ^
--service client ^
--export_test_data
linux bash命令同理。
案例2
你要为客户端生成代码和数据。
你期望使用json格式导出数据类型。
你不期望导出数据中包含测试数据
则win下命令为:
dotnet d:\tools\Luban.Client\Luban.Client.dll ^
-h 127.0.0.1 ^
-p 8899 ^
-j cfg ^
-- ^
--define_file d:\raw_config\defines\__root__.xml ^
--input_data_dir d:\raw_configs\datas ^
--output_code_dir d:\client\Assets\Gen ^
--output_data_dir d:\client\Assets\StreamingAssets\GameData ^
--gen_types code_cs_unity_json,data_json ^
--service client
案例3
你要为服务器生成代码和数据。
你期望使用json导出数据格式。
你期望包含测试数据。
你为服务器选择的service为server
则 win下命令为
dotnet d:\tools\Luban.Client\Luban.Client.dll ^
-h 127.0.0.1 ^
-p 8899 ^
-j cfg ^
-- ^
--define_file d:\raw_config\defines\__root__.xml ^
--input_data_dir d:\raw_configs\datas ^
--output_code_dir d:\server\src\Gen ^
--output_data_dir d:\server\GameData ^
--gen_types code_cs_json,data_json ^
--service server ^
--export_test_data
案例4
luban-server 被你部属在 192.168.1.10这台机器上端口为1111。其他的如案例3。
则 win下的生成命令为
dotnet d:\tools\Luban.Client\Luban.Client.dll ^
-h 192.168.1.10 ^
-p 1111 ^
-j cfg ^
-- ^
--define_file d:\raw_config\defines\__root__.xml ^
--input_data_dir d:\raw_configs\datas ^
--output_code_dir d:\server\src\Gen ^
--output_data_dir d:\server\GameData ^
--gen_types code_cs_json,data_json ^
--service server ^
--export_test_data
案例5
你要为服务器生成代码和数据。同时让luban.client执行生成后不退出进入监控状态只要配置定义或者数据有变化就自动生成代码和数据。
你期望使用json导出数据格式。
你期望包含测试数据。
你为服务器选择的service为server
则 win下命令为
dotnet d:\tools\Luban.Client\Luban.Client.dll ^
-h 127.0.0.1 ^
-p 8899 ^
-j cfg ^
-w d:\raw_config\defines;d:\raw_configs\datas
-- ^
--define_file d:\raw_config\defines\__root__.xml ^
--input_data_dir d:\raw_configs\datas ^
--output_code_dir d:\server\src\Gen ^
--output_data_dir d:\server\GameData ^
--gen_types code_cs_json,data_json ^
--service server ^
--export_test_data