gpt4 book ai didi

android - Jenkins 无法创建 Cordova 平台

转载 作者:行者123 更新时间:2023-12-04 23:49:24 31 4
gpt4 key购买 nike

我有一份 Jenkins 的工作,应该创建一个 Cordova 应用程序,但它失败了一些我无法确定的原因。 Jenkins 的工作就是这样做的:

cordova platform add android
cordova prepare android
cordova build android --debug --verbose
第一个命令 ( cordova platform add android ) 导致以下错误:
ENOENT: no such file or directory, mkdir 'platforms/android/app/src/main'
Error: ENOENT: no such file or directory, mkdir 'platforms/android/app/src/main'
at Object.mkdirSync (fs.js:738:3)
at Object.module.exports.makeDirSync (/Users/me/Documents/Jenkins/sharedspace/apps/my-app/cordova/node_modules/fs-extra/lib/mkdirs/make-dir.js:23:13)
at /Users/me/Documents/Jenkins/sharedspace/apps/my-app/cordova/node_modules/cordova-android/lib/create.js:231:16

+ /Users/me/.nvm/versions/node/v16.13.2/bin/cordova prepare android
(node:23901) ExperimentalWarning: The fs.promises API is experimental
Discovered platform "android". Adding it to the project
EEXIST: file already exists, mkdir '/Users/me/Documents/Jenkins/sharedspace/apps/my-app/cordova/platforms'

+ /Users/me/.nvm/versions/node/v16.13.2/bin/cordova build android --debug --verbose
(node:23902) ExperimentalWarning: The fs.promises API is experimental
No platforms added to this project. Please use `cordova platform add <platform>`.
CordovaError: No platforms added to this project. Please use `cordova platform add <platform>`.
at Object.preProcessOptions (/Users/me/.nvm/versions/node/v16.13.2/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js:275:15)
at /Users/me/.nvm/versions/node/v16.13.2/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/build.js:29:31
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
at startup (internal/bootstrap/node.js:236:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:560:3)

Build step 'Execute shell' marked build as failure
当我查看 platforms 内部时 Jenkins 盒子上的目录是空的。它能够创建 platforms文件夹本身,只是下面没有其他内容。据我所知,这似乎不是许可问题。如果我以 jenkins 使用的同一用户的身份 ssh 进入该框,我可以正常运行 cordova 命令并且一切正常。
此外,如果我通过 ssh 手动添加平台,然后让 jenkins 在 android 之后接管文件夹已经存在,工作正常。所以我猜由于某种原因它无法添加android项目。
如果有帮助,这就是 cordova requirements给出:
cordova requirements

Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-30,android-29,android-28
Gradle: installed /usr/local/Cellar/gradle/7.3.3/bin/gradle

最佳答案

好吧,我终于想通了!在休息了几个星期后,我注意到作业配置中有一个名为“共享工作区”的设置,我将其设置为值 () .我不知道那是什么意思,但它的效果是把这个项目的代码放在

/Users/me/Documents/Jenkins/sharedspace
文件夹,这显然导致了 Cordova 的问题。一旦我将共享工作区值设置为 NONE ,它将项目移至
/Users/trident/Documents/Jenkins/workspace/my-app
文件夹,这是我所期望的。在那之后,你瞧,一切正常。

关于android - Jenkins 无法创建 Cordova 平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70988189/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com