全部产品
研发协同 RDC

Web应用构建配置

更新时间:2017-09-19 16:18:26   分享:   

Web应用的构建,RDC目前支持JavaNode,及其它脚本语言的构建。下面会讲解构建环境和构建行为,及如何进行定制化配置。

关于构建的更多内容,请从构建配置概述读起。

完成构建配置后,请继续部署配置。关于Web应用通过脚本部署,请参见部署配置:通过脚本部署。关于部署的更多内容,请从部署配置概述读起。

基础环境

自定义构建脚本

您需要在代码库中放置一个文件:<应用名>.release(如果在创建应用时,选择新建代码库,则RDC会帮您生成这个文件,并提交到代码库中)。该文件以键值对的形式描述构建行为。

您可以在release文件中通过build.command指定任意构建命令,比如build.command=sh build.sh,所以如果需要安装软件,或者执行复杂的命令,都可以通过这种方式实现。

环境变量

关于环境变量对于构建过程的影响,请参看使用参数影响构建行为

各个语言构建行为

Java构建

使用Java构建,release文件需要按如下形式编写:

  1. # 必填,表示是Java构建
  2. code.language=java
  3. # 选填,取值可以是jdk-1.6,jdk-1.7,jdk-1.8,默认值为jdk-1.7
  4. baseline.jdk=jdk-1.7.0_51
  5. # 选填,取值可以是maven2.2.1,maven3.2.5,默认值为maven3.2.5
  6. build.tools.maven=maven2.2.1
  7. # 选填,取值可以是gradle-2.10,gradle-4.0,默认值为gradle-2.10
  8. build.tools.gradle=gradle-2.10

Java的默认构建命令为:mvn -U clean package -Dappname=$APP_NAME -P$PACKAGE_LABEL(关于PACKAGE_LABEL,请参看使用参数影响构建行为),您可以通过build.command进行覆盖。

默认的maven settings会把所有的repository都镜像到maven.aliyun.com下载依赖,如果您需要不同的配置,只需要在代码根目录放置您的settings.xml,RDC会使用该文作为构建的settings.xml

如果需要使用私有maven仓库下载依赖或上传二方库,具体做法详见在RDC中使用私有maven仓库

构建完成之后,需要通过配置告诉RDC您希望把什么文件作为构建的产物,详见下文“打包”这节 。

Node构建

使用Nodejs构建,release文件需要按如下形式编写:

  1. # 必填,表示是Node构建
  2. code.language=nodejs

Node构建通过engines的方式来获得特定的版本,具体方式是在package.json中添加如下片段:

  1. ...
  2. "engines": {
  3. "node": ">=5.1.0"
  4. },
  5. ...

则RDC会根据使用您指定的版本。该机制背后使用的是nvm,所以只要是nvm支持的版本,都可以填写。

Node的默认构建命令为:npm --python=/usr/alibaba/install/python-3.5.0/bin/python3 --registry=https://registry.npm.taobao.org install --production。其中的--python部分是为了进行包含本地扩展的node模块的编译,详见:https://github.com/nodejs/node-gyp

您可以通过build.command进行覆盖。

构建完成之后,需要通过配置告诉RDC您希望把什么文件作为构建的产物,详见下文“打包”这节。

scripts构建

使用scripts构建,release文件需要按如下形式编写:

  1. # 必填,表示是scripts构建
  2. code.language=scripts

构建完成之后,需要通过配置告诉RDC您希望把什么文件作为构建的产物,详见详见下文“打包”这节。

RDC把不需要进行编译的语言,比如php,python等,都归为此类。这类语言,不做任何构建,只进行打包。

不同环境使用不同的构建配置

RDC支持在不同的环境中使用不同的构建配置。详见使用参数影响构建行为

一般来讲,修改构建配置,也需要相应的修改部署配置。详见部署配置:通过脚本部署

打包

release文件中指定build.output,内容可以是一个文件或者文件夹的相对路径。比如target/myproject.jartarget/myproject.war等。RDC会将指定的文件打成压缩包,保存下来。

对于scriptsnodejs来说,如果不给出build.output,则会打包整个目录。

目前不提供压缩包的下载,该压缩包会在进行部署时候,直接传到指定机器上。详见部署配置:通过脚本部署

本文导读目录
本文导读目录
以上内容是否对您有帮助?