MFP CLI v7.0 无法构建部署最初使用 MFP Studio v7.0 创建的项目
MFP CLI v7.0 cannot build-deploy project initially created with MFP Studio v7.0
问题背景:
我们最初使用 MFP Studio 插件 v7.0 for Eclipse 创建了一个 MFP 项目(原生 API for iOS)。我们将此项目置于源代码控制之下(Git on DevOps)。
问题:
从 Git 拉下 MFP 项目代码(新鲜拉取)后,如果首先使用 Studio“部署本机 API”和“部署移动优先适配器”,则编译、构建和部署所有内容正好。然后我们可以从 Studio 中调用适配器,没有任何问题。这样做之后,我们还可以切换到 MFP CLI 来构建和部署工件,CLI 命令工作得很好。
现在,如果从 Git 拉下代码(新拉),而不是使用 Studio,我们立即开始使用 MFP CLI 来构建和部署工件,则会发生错误。 MFP CLI 似乎缺少 Studio 知道如何执行的步骤。在从 Git 重新拉取后立即使用 CLI 进行构建和部署 (mfp bd) 时出现的错误如下:
$ 制造商信息
OS:达尔文 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)
描述:忠诚推送适配器
类型:http
程序:submitNotification
适配器: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/服务器
服务器二进制文件:/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]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。
WebSphere Application Server 8.5.5.4 (1.0.7.cl50420141121-1414) 在 Java HotSpot(TM) 64 位服务器 VM,版本 1.7.0_75-b13 (en_US)
环境变量:
TERM_PROGRAM: Apple_Terminal
ANDROID_HOME: /Users/olivieri/android-sdks
术语:xterm-256color
SHELL: /bin/bash
TMPDIR:/var/folders/c9/gf_f0_sd60q1mm9kxwgvlxsr0000gn/T/
Apple_PubSub_Socket_Render: /private/tmp/com.apple.launchd.QL5sT9RU2F/Render
TERM_PROGRAM_版本:343.7
TERM_SESSION_ID:6798439A-3592-4D5C-ABFE-7A2E2D5D80BA
ANT_HOME: /Users/olivieri/开发/apache-ant-1.9.4
用户:olivieri
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/平台工具
密码: /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
家:/Users/olivieri
SHLVL:2
登录名:olivieri
显示:/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]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。
停止服务器工作灯。
服务器工作灯停止。
初始化 MobileFirst 控制台。
objc[4386]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。
启动服务器工作灯。
服务器 worklight 以进程 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 级别。
关于此错误的可能原因有什么想法吗?
您确定在 java-adapter-folder\lib 文件夹中放置了一个 .gitkeep 文件吗?该文件夹默认为空 GIT does not preserve empty folders,因此从 GIT 下载此项目时该文件夹将丢失,但构建过程可能需要它。
尝试添加丢失的文件夹,看看是否有帮助。根据结果,我们将有一个行动项目。
问题背景: 我们最初使用 MFP Studio 插件 v7.0 for Eclipse 创建了一个 MFP 项目(原生 API for iOS)。我们将此项目置于源代码控制之下(Git on DevOps)。
问题: 从 Git 拉下 MFP 项目代码(新鲜拉取)后,如果首先使用 Studio“部署本机 API”和“部署移动优先适配器”,则编译、构建和部署所有内容正好。然后我们可以从 Studio 中调用适配器,没有任何问题。这样做之后,我们还可以切换到 MFP CLI 来构建和部署工件,CLI 命令工作得很好。
现在,如果从 Git 拉下代码(新拉),而不是使用 Studio,我们立即开始使用 MFP CLI 来构建和部署工件,则会发生错误。 MFP CLI 似乎缺少 Studio 知道如何执行的步骤。在从 Git 重新拉取后立即使用 CLI 进行构建和部署 (mfp bd) 时出现的错误如下:
$ 制造商信息 OS:达尔文 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) 描述:忠诚推送适配器 类型:http 程序:submitNotification
适配器: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/服务器 服务器二进制文件:/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]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 WebSphere Application Server 8.5.5.4 (1.0.7.cl50420141121-1414) 在 Java HotSpot(TM) 64 位服务器 VM,版本 1.7.0_75-b13 (en_US)
环境变量: TERM_PROGRAM: Apple_Terminal ANDROID_HOME: /Users/olivieri/android-sdks 术语:xterm-256color SHELL: /bin/bash TMPDIR:/var/folders/c9/gf_f0_sd60q1mm9kxwgvlxsr0000gn/T/ Apple_PubSub_Socket_Render: /private/tmp/com.apple.launchd.QL5sT9RU2F/Render TERM_PROGRAM_版本:343.7 TERM_SESSION_ID:6798439A-3592-4D5C-ABFE-7A2E2D5D80BA ANT_HOME: /Users/olivieri/开发/apache-ant-1.9.4 用户:olivieri 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/平台工具 密码: /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 家:/Users/olivieri SHLVL:2 登录名:olivieri 显示:/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]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 停止服务器工作灯。 服务器工作灯停止。 初始化 MobileFirst 控制台。 objc[4386]: Class JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1.7.[= 中实现123=].jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 启动服务器工作灯。 服务器 worklight 以进程 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 级别。
关于此错误的可能原因有什么想法吗?
您确定在 java-adapter-folder\lib 文件夹中放置了一个 .gitkeep 文件吗?该文件夹默认为空 GIT does not preserve empty folders,因此从 GIT 下载此项目时该文件夹将丢失,但构建过程可能需要它。
尝试添加丢失的文件夹,看看是否有帮助。根据结果,我们将有一个行动项目。