Web应用构建配置
概述
本文讲解Web应用构建相应的配置。关于构建的更多内容,比如<应用名>.release
是什么,请从构建配置概述读起。
完成Web应用的构建配置后,请继续部署配置,参见部署配置:通过脚本部署。
Java构建
此时<应用名>.release
文件基本内容:
code.language=oracle-jdk1.9
build.output=target/<应用名>.war
这意味着,将在Java构建环境(详见构建环境)中,使用Java默认构建命令mvn -U clean package -Dappname=$APP_NAME -P$PACKAGE_LABEL
进行构建,随后把构建输出target/<应用名>.war
打为tgz包并保存,供后续部署使用。
如果想改变构建命令,需要设置build.command
。详见可配置键的完整列表中的build.command
。
默认的Maven settings会把所有的repository
都镜像到maven.aliyun.com
下载依赖,如果您需要不同的配置,只需要在代码根目录放置您的settings.xml
,云效会使用该文作为构建的settings.xml
。
如果需要使用私有Maven仓库下载依赖或上传二方库,具体做法详见在云效中使用私有Maven仓库。
Node构建
此时<应用名>.release
文件基本内容:
code.language=node8.x
这意味着,将在Node构建环境(详见构建环境)中,使用Node默认构建命令npm --python=/usr/alibaba/install/python-3.5.0/bin/python3 --registry=https://registry.npmmirror.com install --productionL
进行构建,随后把构建输出./(源代码根目录)
打为tgz包并保存,供后续部署使用。
如果想改变构建命令,需要设置build.command
。详见可配置键的完整列表中的build.command
。类似的,如果想改变打包范围,需要设置build.output
。
Node构建通过engines
的方式来获得特定的版本,具体方式是在package.json
中添加如下片段:
...
"engines": {
"node": ">=5.1.0"
},
...
则云效会根据使用您指定的版本。该机制背后使用的是nvm
,所以只要是nvm
支持的版本,都可以填写。
PHP构建
此时<应用名>.release
文件基本内容:
code.language=php7.0
系统将简单的把./(源代码根目录)
打为tgz包并保存,供后续部署使用。如果希望构建,请设置build.command
,于是将在PHP构建环境(详见构建环境)中,据此构建后再打包。
其他情况
此时<应用名>.release
文件基本内容:
code.language=scripts
系统将简单的把./(源代码根目录)
打为tgz包并保存,供后续部署使用。如果希望构建,请设置build.command
,于是将在基础环境(详见构建环境)中,据此构建后再打包。
补充说明
灵活配置构建环境
在build.command
中,可以指定任意构建命令,比如build.command=sh build.sh
,所以如果需要安装软件,或者执行复杂的命令,都可以通过这种方式实现。
环境变量对于构建过程的影响
关于环境变量对于构建过程的影响,请参看使用参数影响构建行为
不同环境使用不同的构建配置
云效支持为不同的运行环境打不同的包。为此,在不同的环境中使用不同的构建配置。详见使用参数影响构建行为。
修改一个环境的构建配置后,考虑相应的修改该环境的部署配置。详见应用部署概述。
关于包的管理
目前不提供压缩包的下载,该压缩包会在进行部署时候,直接传到指定机器上。详见部署配置:通过脚本部署。