在 Jenkins 的任务 gradle 中找不到 assembleRelease
Posted
技术标签:
【中文标题】在 Jenkins 的任务 gradle 中找不到 assembleRelease【英文标题】:assembleRelease not found in task gradle in Jenkins 【发布时间】:2020-01-25 16:38:33 【问题描述】:我有一个安卓项目。它有 2 种口味,分别名为 GooglePlay 和 Cafebazzar。
在使用 android Studio 时,我看到了 assembleRelease 和 assembleCafeBazzar 和 assembleGooglePlay。
当我在 jenkins 中使用 ./gradlew -q tasks --all 时,我在我的任务中看不到 assembleRelease。 只是我看到了 assemble。 我使用 Jenkins 来构建项目。如何在 Jenkins 中看到 assembleRelease?
+ ./gradlew -q tasks --all
------------------------------------------------------------
Tasks runnable from root project
------------------------------------------------------------
Android tasks
-------------
app:sourceSets - Prints out all the source sets defined in this project.
core:sourceSets - Prints out all the source sets defined in this project.
skeleton:sourceSets - Prints out all the source sets defined in this project.
Build tasks
-----------
app:assemble - Assembles all variants of all applications and secondary packages.
core:assemble - Assembles all variants of all applications and secondary packages.
skeleton:assemble - Assembles all variants of all applications and secondary packages.
app:assembleAndroidTest - Assembles all the Test applications.
core:assembleAndroidTest - Assembles all the Test applications.
skeleton:assembleAndroidTest - Assembles all the Test applications.
app:build - Assembles and tests this project.
core:build - Assembles and tests this project.
skeleton:build - Assembles and tests this project.
app:buildDependents - Assembles and tests this project and all projects that depend on it.
core:buildDependents - Assembles and tests this project and all projects that depend on it.
skeleton:buildDependents - Assembles and tests this project and all projects that depend on it.
app:buildNeeded - Assembles and tests this project and all projects it depends on.
core:buildNeeded - Assembles and tests this project and all projects it depends on.
skeleton:buildNeeded - Assembles and tests this project and all projects it depends on.
app:clean - Deletes the build directory.
core:clean - Deletes the build directory.
skeleton:clean - Deletes the build directory.
app:cleanBuildCache - Deletes the build cache directory.
core:cleanBuildCache - Deletes the build cache directory.
skeleton:cleanBuildCache - Deletes the build cache directory.
【问题讨论】:
我们在 GitLab CI 中使用 Docker 执行器遇到了同样的问题。有消息吗? 【参考方案1】:我有同样的问题,当我检查我的项目时,“assembleRelease”不能作为任务使用。 当我在 Android Studio 中打开项目并选择“与 gradle 同步”时,会有一些活动,之后我可以从命令行执行“gradlew assembleRelease”。
我不知道“与 gradle 同步”到底是做什么的。似乎有一个命令曾经做过类似的事情,但它似乎不再可用。
编辑: 似乎文件 local.properties 是通过运行“与 gradle 文件同步”创建的。我创建了一个示例来在 googles issuetracker 中重现该问题,似乎该文件在 assembleRelease 是否可用之间有所不同。
编辑2: Fastlane 现在正在运行,我在安装过程中将 local.properties 文件复制到构建目录中。 根据对我的类似问题Gradle task assembleRelease not found in CI build, works with Android Studio 的评论,这是因为未设置 ANDROID_HOME。
【讨论】:
以上是关于在 Jenkins 的任务 gradle 中找不到 assembleRelease的主要内容,如果未能解决你的问题,请参考以下文章
在项目“:app”中找不到任务“prepareKotlinBuildScriptModel”