gpt4 book ai didi

jenkins - 如何在 Jenkins 上生成 Gradlew?

转载 作者:行者123 更新时间:2023-12-03 06:27:01 32 4
gpt4 key购买 nike

如何为 Jenkins Android 项目生成 gradlew 文件?我的项目不是 Android Native。我的项目是 flutter 。

我尝试使用 Jenkins 创建 CD,但出现了一些错误。

这是我的管道代码(JenkinsFile)

stage('Build Release APK') {
sh "ls ./android"
sh "./android/gradlew clean assembleRelease"
}

ls 输出是,(没有 gradlew 文件)
ls ./android
app
build.gradle
gradle
gradle.properties
key.properties
settings.gradle

这是我得到的错误
./android/gradlew clean assembleRelease
/Users/donperera/.jenkins/workspace/demo@tmp/durable-b0592b49/script.sh: line 1: ./android/gradlew: No such file or directory

有没有办法用 Jenkins 构建 apk/aap?

这个插件可以用吗?但我已经添加了这个。但不在我的剧本中。 https://guides.gradle.org/executing-gradle-builds-on-jenkins/

最佳答案

gradlewgradlew.bat是 Gradle 的可执行文件,可用于执行 毕业 命令。

gradlew or gradlew.bat uses gradle/wrapper/gradle-wrapper.jar file for execution.



所以有3个文件在玩:
  • gradlew对于 马克 linux
  • gradlew.bat对于 window
  • gradle/wrapper/gradle-wrapper.jar

  • 这里的问题是,当您创建 时,这些文件已经存在。 flutter 项目。但是这些文件是 忽略 通过 .gitignore默认为项目。所以这些文件在您的 中不可用CI/CD 服务器。

    方法 1 [推荐]

    当它是一个 flutter 项目时,你不需要它们来构建你的项目。您需要安装 Flutter SDK。您可以使用 Flutter SDK 来构建您的项目。使用以下命令进行发布构建 [您可能需要为您的 设置 Flutter SDK Jenkins 服务器]:

    flutter build apk --release

    它将运行 assembleRelease在内部,并将生成您的 APK 文件。

    方法 2 [不推荐]

    如果您想按照自己的方式进行操作,则可以通过从 .gitignore 中删除它们的引用来将这 3 个文件添加到版本控制中。文件并将其推送到您的存储库。然后你会在你的 中拥有这些文件。 Jenkins 工作区。您必须授予 gradlew 的执行权限如果你在 马克 linux 这可以通过以下命令完成。

    chmod +x ./gradlew

    然后您可以使用以下命令来构建您的应用程序:

    ./gradlew clean assembleRelease

    NOTICE: Method 2 is not recommended because when you run flutter commands, it sets some properties to gradle from pubspec.yaml file like version name, version code. So if you made changes to pubspec.yaml file and haven't run flutter command after that, then running gradlew directly won't include those changes. In this case, your apk might built with older version or might not even built as it reads version info from local.properties file which is auto-modified by flutter commands and it is excluded by default from version control. So, you'll also have to add local.properties file by removing its reference from .gitignore file which is very very dirty because it has location reference of android SDK and your server might not have android SDK on that location. Again you need to tackle that. so don't use this method.

    关于jenkins - 如何在 Jenkins 上生成 Gradlew?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60164378/

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