WebIDE 中用于重用 helper 的全局实用程序项目 类

Global utility project in WebIDE for reuse of helper classes

我尝试在 SAP WebIDE 中开发一个实用程序项目,以便与其他开发人员共享有用的实用程序 类。我们称其为 BaseProject。在我的 CustomProject 中,我想使用对此 BaseProject 的引用并使用例如格式化程序。

因此我在 WebIDE 中创建了一个名为

的 UI5 应用程序项目

com.company.base

和一个自定义项目

my.custom.app

在 com.company.base 项目中,我有以下文件夹结构:

com.company.base
+--- webapp/
     +--- formatter/
          Formatter.js
     Component.js
     library.js
     manifest.json
neo-app-json

library.js 看起来像这样:

sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {

    "use strict";

    sap.ui.getCore().initLibrary({
        name: "com.company.base",
        version: "1.0.0",
        dependencies: ["sap.ui.core"],
        types: [],
        interfaces: [],
        controls: [
            "com.company.base.formatter.Formatter"
        ],
        elements: []
    });

    return com.company.base;

}, /* bExport= */ false);

我将基础项目部署到 hcp as

comcompanybase

在我的自定义应用程序中,我将以下路由添加到 neo-app.json

{
    "path": "/comcompanybase",
    "target": {
        "type": "application",
        "name": "comcompanybase"
    },
    "description": "Base Project"
},

并在 component.js 的 init-Method 中注册,如下所示:

jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");

最后,我可以像这样在自定义应用程序的控制器内部使用格式化程序:

sap.ui.define([
    "my/custom/app/controller/BaseController", 
    "com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {

    "use strict";

    return BaseController.extend("my.custom.app.controller.Master", {
        formatter: Formatter,
        onInit: function() {
            //some coding
        }
    });
});

每次我第一次启动应用程序时都找不到引用。第二次一切正常。

我还必须在每次更改后将应用程序部署到 hcp。有没有办法使用WebIDE的lokal workspace作为参考?我尝试使用 ../../ 向上导航,但这对我不起作用。

WebIDE项目: 运行 -> 运行 配置 -> 创建新配置(使用所需的参数),另外在 "Advanced settings" 中选中复选框 "Use my workspace first"。

这应该可以避免您在每次更改后都需要部署。