【问题标题】:Gradle buildSrc dependency in secondary module二级模块中的 Gradle buildSrc 依赖项
【发布时间】:2016-08-20 07:49:00
【问题描述】:

我有一个需要自动生成的类的 Android 库项目。这个类是在构建期间生成的,其中一个 Groovy 脚本放置在 Library 项目的 buildSrc 目录中。这本身就可以正常工作。

然后我有一个使用该库的应用程序项目,因此我打开带有两个模块的 Android Studio:应用程序和库。在这种情况下,库中的 build.gradle 无法在 buildSrc 目录中找到 Groovy 类。

这是我当前的目录结构。

|-- app-module (main module)
    |-- /* application code and resources */
    |-- build.gradle
|-- library-module
    |-- buildSrc
        |-- CodeGenerator.groovy /* within its package */
        |-- build.gradle
    |-- build.gradle /* depends on CodeGenerator.groovy */

我发现这个工作的唯一方法是将整个 buildSrc 目录从库复制到应用程序中。

是否有另一种方法可以添加 Groovy 构建依赖项而无需将整个内容复制到主模块中?

【问题讨论】:

  • 我有一个类似的问题,我创建了一个公共 github 来展示它是如何失败的。如果您在myLib 项目中执行gradle build,则一切都会清除,但如果您在根项目中执行gradle build,则由于上述原因它不起作用。帮助将不胜感激!您可以通过git clone https://github.com/mikesol/cradle-multi-project-buildsrc.git 签出该项目
  • 嘿@mikesol,你能做到吗?

标签: android android-studio gradle groovy


【解决方案1】:

您是否尝试在 gradle 任务上使用 dependOn 标记?

task taskX << {
  println 'taskX'
}

task taskY << {
  println 'taskY'
}

taskX.dependsOn taskY

更多信息可以在这里找到:https://docs.gradle.org/current/userguide/more_about_tasks.html SubChapter 17.4

【讨论】:

  • 不是任务问题。任务执行良好。当我将 Android Studio 作为多项目(一个是应用程序,一个是库)打开时,就会出现我遇到的问题。由于buildSrc目录只能存在于主模块中(根据文档),Library中的build.gradle找不到Groovy类的依赖(因为它放在Library项目而不是app项目中)。
  • @anavarroma 我也有同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多