在 Web 中重用 SAPUI5 自定义控件库 IDE
Reusing SAPUI5 custom control library in Web IDE
我或多或少清楚如何实现 SAPUI5 控件库并将其部署到 SAP ABAP 存储库,但是我完全无法尝试在 Web-IDE 中重用它。 Web-IDE 只是没有看到部署到 SAP ABAP 存储库的库。当然,我总是可以将库文件克隆到所有项目中,但这不是正确的方法。尝试了不同的依赖路径变体都无济于事。
有人知道吗?
谢谢。
您是否尝试在 manifest.json 文件中设置依赖项?从未尝试过您的设置,只是一个提示。
"dependencies": {
"minUI5Version": "1.38.0",
"libs": {
"sap.ui.core": {},
"sap.m": {},
"sap.ui.layout": {},
"YOUR_LIB": {}
}
终于,问题解决了。这就是:
首先,在 Web IDE 我为库创建了一个单独的项目
在项目的根文件夹下我创建了另一个名为
"library"(名称可以任意)。在 "library" 文件夹下,我根据库的 ID(或名称 space)创建了文件夹层次结构:假设您正在开发名称为 space 的库“com.your_proud_company_name.controls”,在这种情况下,您必须创建一个与路径“com/your_proud_company_name/controls”相对应的嵌套文件夹层次结构。
- 我将所有库文件连同正确编写的 library.js 文件一起放入最深的文件夹(示例中为 "controls")
现在是时候将新项目部署到 SAP HCP(在项目的本地菜单中 select 部署 -> 部署到 SAP HANA 云平台)。部署时,系统会要求您提供应用程序的名称。给一个任意的名字并在某处记下来。我们稍后会用到它。还要记下已部署应用程序的版本(SAP 将自动提供默认编号 - 如 1.0.1)
现在转到您计划使用此库的应用项目并打开文件 neo-app.json
将以下条目添加到 "routes" 列表:
{
"path": "/webapp/resources",
"target": {
"type": "application",
"name": "your_deployed_library_application_name",
"version": "version_of_your_deployed_library_application",
"entryPath": "/library"
},
"description": "Custom control library"
},
在此 "roots" 条目中 "webapp" 是应用程序根文件夹的默认名称,如果您使用其他名称,请更改 "path" 值因此
"type" 值("application" 在我们的例子中)是路由的预定义类型之一,用于可共享的应用程序。
"name" value 是部署的应用程序的名称(不是 Web 中的项目名称 IDE)。
"entryPath" 值是 HCP 开始搜索库文件的库项目(和应用程序)中的根文件夹。
现在您可以将库作为依赖项添加到应用程序项目的 manifest.json 文件中。 "dependencies" 下的条目应如下所示( 将您的特定值放入 "minVersion"):
"com.your_proud_company_name.controls": {
"minVersion": "1.0.5"
}
我或多或少清楚如何实现 SAPUI5 控件库并将其部署到 SAP ABAP 存储库,但是我完全无法尝试在 Web-IDE 中重用它。 Web-IDE 只是没有看到部署到 SAP ABAP 存储库的库。当然,我总是可以将库文件克隆到所有项目中,但这不是正确的方法。尝试了不同的依赖路径变体都无济于事。
有人知道吗?
谢谢。
您是否尝试在 manifest.json 文件中设置依赖项?从未尝试过您的设置,只是一个提示。
"dependencies": {
"minUI5Version": "1.38.0",
"libs": {
"sap.ui.core": {},
"sap.m": {},
"sap.ui.layout": {},
"YOUR_LIB": {}
}
终于,问题解决了。这就是:
首先,在 Web IDE 我为库创建了一个单独的项目
在项目的根文件夹下我创建了另一个名为 "library"(名称可以任意)。在 "library" 文件夹下,我根据库的 ID(或名称 space)创建了文件夹层次结构:假设您正在开发名称为 space 的库“com.your_proud_company_name.controls”,在这种情况下,您必须创建一个与路径“com/your_proud_company_name/controls”相对应的嵌套文件夹层次结构。
- 我将所有库文件连同正确编写的 library.js 文件一起放入最深的文件夹(示例中为 "controls")
现在是时候将新项目部署到 SAP HCP(在项目的本地菜单中 select 部署 -> 部署到 SAP HANA 云平台)。部署时,系统会要求您提供应用程序的名称。给一个任意的名字并在某处记下来。我们稍后会用到它。还要记下已部署应用程序的版本(SAP 将自动提供默认编号 - 如 1.0.1)
现在转到您计划使用此库的应用项目并打开文件 neo-app.json
将以下条目添加到 "routes" 列表:
{
"path": "/webapp/resources", "target": { "type": "application", "name": "your_deployed_library_application_name", "version": "version_of_your_deployed_library_application", "entryPath": "/library" }, "description": "Custom control library"
},
在此 "roots" 条目中 "webapp" 是应用程序根文件夹的默认名称,如果您使用其他名称,请更改 "path" 值因此
"type" 值("application" 在我们的例子中)是路由的预定义类型之一,用于可共享的应用程序。
"name" value 是部署的应用程序的名称(不是 Web 中的项目名称 IDE)。
"entryPath" 值是 HCP 开始搜索库文件的库项目(和应用程序)中的根文件夹。
现在您可以将库作为依赖项添加到应用程序项目的 manifest.json 文件中。 "dependencies" 下的条目应如下所示( 将您的特定值放入 "minVersion"):
"com.your_proud_company_name.controls": { "minVersion": "1.0.5" }