如图,这个 module 定义在 mta.yaml
文件里:
完整定义如下:
- name: sap-btp-project1-dest-content type: com.sap.application.content requires: - name: sap-btp-project1-dest-srv parameters: content-target: true - name: sap-btp-project1-repo-host parameters: service-key: name: sap-btp-project1-repo-host-key - name: sap-btp-project1-uaa parameters: service-key: name: sap-btp-project1-uaa-key parameters: content: instance: destinations: - Name: sap-btp-project1_repo_host ServiceInstanceName: sap-btp-project1-html5-srv ServiceKeyName: sap-btp-project1-repo-host-key sap.cloud.service: sap-btp-project1 - Authentication: OAuth2UserTokenExchange Name: sap-btp-project1_uaa ServiceInstanceName: sap-btp-project1-xsuaa-srv ServiceKeyName: sap-btp-project1-uaa-key sap.cloud.service: sap-btp-project1 existing_destinations_policy: ignore build-parameters: no-source: true
这个 module 的类型为:com.sap.application.content
GACD (Generic Application Content Deployer) module 是用来部署 HTML5 应用到 SAP BTP 的一个工具模块。
何谓 Generic?当在 cf 部署工作流中处理模块时,部署服务将找到所需服务资源作为部署目标,并部署相应的 content.zip 文件。
如上图所示,com.sap.application.content
需要一个 repo host 作为 resource
,该 resource
是一个 service.
上图的语义是,ui_deployer 这个 module,会被部署到名为 uideployer_html5_repo_host
的 service 去(content-target:true).
webapp 文件夹里 manifest.json 文件的 sap.app.id
和 sap.app.applicationVersion.version
会被 HTML5 Application Repository 使用。
xs-app.json 是为支持路由功能而实现的:
关于 mta.yaml 文件的 require 区域:
下列 yaml 文件里,虽然 module A 出现在 B 之前,但是 build-parameters
里的 requires
区域定义了,只有 module B 构建完毕之后,才能构建 A.