如图,这个 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.
网友评论