命令行发布项目
通过命令行发布项目可以帮助大家构建自己的自动化构建流程,大家可以修改命令行的参数来达到不同的构建需求。
命令行发布参考
例如:构建 web-desktop 平台、Debug 模式
Mac
/Applications/CocosCreator3D.app/Contents/MacOS/CocosCreator3D --project projectPath --build "platform=web-desktop;debug=true"
Windows
CocosCreator3D/CocosCreator3D.exe --project projectPath --build "platform=web-desktop;debug=true"
目前命令行构建除了必填项外,如果不传递一律使用默认值来构建,具体参数默认值请参考下方描述以及平台的参数介绍。
进程退出码
- 332 构建失败 —— 构建参数不合法
- 334 构建失败 —— 构建过程出错失败,详情请参考构建日志
- 336 构建成功
构建参数
--project
:必填,指定项目路径--build
:指定构建项目使用的参数在
--build
后如果没有指定参数,则会使用 Cocos Creator 3D 中构建面板当前的平台、模板等设置来作为默认参数。如果指定了其他参数设置,则会使用指定的参数来覆盖默认参数。可选择的参数有:configPath
- 参数文件路径。如果定义了这个字段,那么构建时将会按照json
文件格式来加载这个数据,并作为构建参数。这个参数可以自己修改也可以直接从构建面板导出。includedModules
- 定制引擎的打包模块,有需要打包部分模块而不是全部模块的,可以传递此参数。具体模块可以从 这里 查找到,注意传递的是模块 entry 字段组成的数组。taskName
- 构建任务名,构建后生成的发布包文件夹名称。name
- 游戏名称platform
- 必填,构建的平台buildPath
- 构建的工作区,默认为 build 目录下startScene
- 主场景的 uuid 值(参与构建的场景将使用上一次的编辑器中的构建设置),未指定时将使用参与构建场景的第一个scenes
- 参与构建的场景信息,未指定时默认为全部场景debug
- 是否为 debug 模式,默认关闭mergeStartScene
- 是否合并初始场景依赖的所有 JSON,默认关闭packAutoAtlas
- 是否开启自动图集,默认关闭compressTexture
- 是否开启压缩纹理,默认关闭replaceSplashScreen
- 是否替换插屏,默认关闭md5Cache
- 是否开启 md5 缓存,默认关闭
自 v1.0.3 起,各个平台的构建会作为独立的插件嵌入到构建发布面板中,因而构建各个平台的构建参数位置也不同,各个平台的参数将会放置在 packages.平台名称.key
内,例如:为 wechatgame 指定构建参数,配置大体如下:
{
taskName: 'wechatgame',
packages: {
wechatgame: {
appid: '*****',
}
}
}
之后在构建插件支持对外开放,其他插件的配置参数也会通过同样的方式嵌入到构建面板中。具体各个平台的参数字段还请参照各个平台各自的文档,最好是通过构建面板的 导出
功能来获取配置参数,更加方便快捷。目前依旧兼容旧版本的参数来构建,但是将会在之后移除该兼容处理,请尽快升级配置参数。
在 Jenkins 上部署
Cocos Creator 3D 命令行运行的时候也是需要 GUI 环境的。如果你的 Jenkins 无法使用 Cocos Creator 3D 命令行运行,一个解决办法是:确保 Jenkins 运行在 agent 模式下,这样才能访问到 WindowServer。详见:https://stackoverflow.com/questions/13966595/build-unity-project-with-jenkins-failed
如果你的 Jenkins 在 Windows 下无法编译,请在 Windows 的 控制面板 -> 管理工具 -> 服务 中为 Jenkins 的服务指定一个本地用户,然后重启电脑就可以了。不必单独设置一个 master-slave 模式。