MFP CLI v7.0 无法构建-部署最初使用 MFP Studio v7.0 创建的项目

Posted

技术标签:

【中文标题】MFP CLI v7.0 无法构建-部署最初使用 MFP Studio v7.0 创建的项目【英文标题】:MFP CLI v7.0 cannot build-deploy project initially created with MFP Studio v7.0 【发布时间】:2015-06-05 23:34:27 【问题描述】:

问题背景: 我们最初使用 Eclipse 的 MFP Studio 插件 v7.0 创建了一个 MFP 项目(ios 的原生 API)。我们将这个项目置于源代码控制之下(Git on DevOps)。

问题: 从 Git 拉下 MFP 项目代码(新拉)后,如果首先使用 Studio 来“部署 Native API”和“部署 Mobile First Adapters”,那么一切都编译、构建和部署得很好。然后我们就可以很好地从 Studio 调用适配器,没有任何问题。这样做之后,我们还可以切换到 MFP CLI 来构建和部署工件,并且 CLI 命令可以正常工作。

现在,如果在从 Git 中提取代码(新鲜拉取)后,我们没有使用 Studio,而是立即开始使用 MFP CLI 来构建和部署工件,则会出现错误。 MFP CLI 似乎缺少 Studio 知道如何执行的步骤。在从 Git 重新拉取后立即使用 CLI 进行构建和部署 (mfp bd) 时,我们遇到的错误如下:

$ mfp 信息 操作系统:达尔文 x64 发布:14.3.0 系统内存:16384 MB 中有 2845 MB 可用 节点:v0.10.30 MobileFirst CLI:7.0.0.00.20150430-1604 当前目录:/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp

当前项目:/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp

适配器:LoyaltyPushAdapter (/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp/adapters/LoyaltyPushAdapter/LoyaltyPushAdapter.xml) 描述: LoyaltyPushAdapter 类型:http 程序:提交通知

适配器:LoyaltyUserAdapter (/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp/adapters/LoyaltyUserAdapter/LoyaltyUserAdapter.xml) 描述:忠诚用户适配器 类型:java 过程:[不适用于 Java 适配器]

应用程序:忠诚度(/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp/apps/Loyalty/application-descriptor.xml) 说明:忠诚 类型:原生ios

服务器位置:/Users/olivieri/.ibm/mobilefirst/7.0.0.00.20150430-1556/server 服务器二进制文件:/Users/olivieri/.ibm/mobilefirst/7.0.0.00.20150430-1556/server/wlp/bin/server MobileFirst 实例:/Users/olivieri/.ibm/mobilefirst/7.0.0.00.20150430-1556/server/wlp/usr/servers/worklight objc[4021]:类 JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents 中实现/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 Java HotSpot(TM) 64 位服务器 VM 上的 WebSphere Application Server 8.5.5.4 (1.0.7.cl50420141121-1414),版本 1.7.0_75-b13(en_US)

环境变量: TERM_PROGRAM:Apple_Terminal android_HOME:/Users/olivieri/android-sdks 术语:xterm-256color 外壳:/bin/bash TMPDIR:/var/folders/c9/gf_f0_sd60q1mm9kxwgvlxsr0000gn/T/ Apple_PubSub_Socket_Render:/private/tmp/com.apple.launchd.QL5sT9RU2F/Render TERM_PROGRAM_VERSION:343.7 TERM_SESSION_ID:6798439A-3592-4D5C-ABFE-7A2E2D5D80BA ANT_HOME:/Users/olivieri/Development/apache-ant-1.9.4 用户:奥利维耶里 SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.E1N6IPACu1/Listeners __CF_USER_TEXT_ENCODING: 0x1F5:0x0:0x0 路径:/Users/olivieri/Development/apache-ant-1.9.4/bin:/Users/olivieri/Development/checker-276:/usr/local/bin:/usr/bin:/bin:/usr/sbin: /sbin:/opt/X11/bin:/Applications/IBM/MobileFirst-CLI:/Applications/IBM/MobileFirst-CLI:/Users/olivieri/Development/gradle-2.3/bin:/Users/olivieri/android-sdks/工具:/Users/olivieri/android-sdks/platform-tools 密码:/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp JAVA_HOME:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home 朗:en_US.UTF-8 XPC_FLAGS:0x0 XPC_SERVICE_NAME:0 主页:/用户/olivieri SHLVL: 2 LOGNAME:奥利维耶里 显示:/private/tmp/com.apple.launchd.qHj5hi31Kp/org.macosforge.xquartz:0 _:/Applications/IBM/MobileFirst-CLI/IBMnode/bin/node WLP_USER_DIR:/Users/olivieri/.ibm/mobilefirst/7.0.0.00.20150430-1556/server/wlp/usr

$ mfp 重启 objc[4345]:JavaLaunchHelper 类在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents 中实现/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 停止服务器工作灯。 服务器工作灯已停止。 初始化 MobileFirst 控制台。 objc[4386]:类 JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents 中实现/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 启动服务器工作灯。 服务器工作灯以进程 ID 4385 开始。 Ricardos-MBP:LoyaltyReadyApp olivieri$

$ mfp bd [错误: 构建失败 /Applications/IBM/MobileFirst-CLI/mobilefirst-cli/node_modules/generator-worklight-server/lib/build.xml:135:执行此行时发生以下错误: /Applications/IBM/MobileFirst-CLI/mobilefirst-cli/node_modules/generator-worklight-server/lib/build.xml:167:执行此行时出现以下错误: /Applications/IBM/MobileFirst-CLI/mobilefirst-cli/node_modules/generator-worklight-server/lib/build.xml:185:适配器“LoyaltyUserAdapter”的构建失败。失败消息是:'/Users/olivieri/git/Ready.App.5.Loyalty/LoyaltyReadyApp/adapters/LoyaltyUserAdapter/lib 不存在。'。失败可能是由于 Java 代码不正确、JDK 级别不兼容、JAVA_HOME 未指向有效 JDK 的位置或缺少依赖项造成的。请注意,在构建 Java 适配器时,worklight-jee-library.jar 必须位于类路径中。

总时间:2秒 ] 错误:抱歉,发生了错误。详情请查看上面的堆栈。

我们的 JAVA_HOME 设置正确,并且我们使用的是兼容的 JDK 级别。

关于可能导致此错误的原因有什么想法吗?

【问题讨论】:

【参考方案1】:

您确定在 java-adapter-folder\lib 文件夹中放置了一个 .gitkeep 文件吗?默认情况下该文件夹为空且GIT does not preserve empty folders,因此当从 GIT 下载此项目时,该文件夹将丢失,但构建过程可能需要它。

尝试添加丢失的文件夹,看看是否有帮助。根据结果​​,我们将从中得出一个行动项目。

【讨论】:

感谢伊丹!我们添加了 lib 文件夹,然后我们可以构建和部署代码 (mfp bd)。即使缺少这个 lib 文件夹,MFP Studio 也可以构建/部署适配器仍然很有趣。 是的,CLI 构建应该能够容忍这一点。感谢您的报告。

以上是关于MFP CLI v7.0 无法构建-部署最初使用 MFP Studio v7.0 创建的项目的主要内容,如果未能解决你的问题,请参考以下文章

native-app-builder ANT 任务不更新 worklight.plist 文件 (MFP v7.0)

MFP CLI 7.1 适配器不会使用 mfp push 命令部署

如何使用 CLI 将适配器部署到本地 MFP 服务器?

IBM MFP 如何使用 mfpdev-cli 上传(部署).adapter?

使用 mfp push 部署到 Azure VM 经常失败并出现错误 FWLSE3000E

mfp cli 7.1 for android 平台中的cordova 缺少文件