【问题标题】:Setting up a project in IDEA with Gradle使用 Gradle 在 IDEA 中设置项目
【发布时间】:2014-01-10 13:45:33
【问题描述】:

我目前正在着手一个相当庞大的 Android 项目,其中将包含多达 5 个不同的应用程序。这些中的每一个都将依赖于一个 android 库。

这可以通过将共享的 android 库构建到 .jar 文件中并从每个应用程序中引用来轻松完成。但问题是这个项目真的处于早期阶段,因此库的代码会像应用程序一样经常改变。总是在不同的项目中打开库并在每次进行更改时构建它会很痛苦。

  1. 第一个问题是如何设置一个工作区,您可以在其中同时打开应用程序和库,并直接引用库。无需担心 .jar 文件。
  2. 如果不可能有什么想法?我不能成为第一个启动包含多个应用程序的大型 android 项目的人。

【问题讨论】:

  • 当您说“IDEA”时,您是指 Android Studio 吗?如果您使用的是 Android Studio,这很容易通过创建一个包含应用程序和库模块的项目来完成。

标签: android intellij-idea gradle android-gradle-plugin


【解决方案1】:

在 Android Studio 中执行以下操作:

创建一个新项目。该项目将包含所有不同的 APK 项目和共享库。使用“File -> New Project”或从 AS 的初始屏幕中选择 New Project。

在项目中,为每个单独的 APK 创建一个新模块。使用“文件 -> 新模块 -> Android 应用程序”。我将这些类型的模块称为 APK 模块。

在项目中,为共享库创建一个新模块。使用“File -> New Module -> Android Library”创建共享库。

通过修改“build.gradle”文件为共享库添加依赖,将共享库与每个 APK 模块相关联。您必须更改每个 APK 模块中的“build.gradle”文件。

dependencies {
    compile project(':aaa')
}

请务必将“aaa”替换为共享库的名称。

如果您愿意,您可以拥有多个共享库。

现在可以在一个 AndroidStudio 项目下访问所有 APK 模块和共享库的代码。这种方法的另一个优点是可以将单个项目目录转换为单个 git 存储库,用于组合 APK 模块和共享库。

【讨论】:

    【解决方案2】:

    首先,IntelliJ 没有与 Eclipse 相同的工作空间概念。简而言之,模型如下:每个 IntelliJ 项目都有一个窗口。一个 IntelliJ 项目具有一个或多个 IntelliJ 模块,这些模块按源链接。来自不同项目的模块不能通过源链接。

    关于您的具体问题,我认为最简单的解决方案是拥有一个包含所有应用程序和库的单一源代码库和(多项目)Gradle 构建。这将转换为一个 IntelliJ 项目,每个应用程序/库都有一个 IntelliJ 模块,所有都通过源链接。

    如果您绝对需要单独的 Gradle 构建,并且仍然希望在 IDE 中快速周转,那么据我所知,IntelliJ 13 可以通过按一下按钮将另一个 Gradle 构建添加到同一个 IntelliJ 项目中,并且也许 Android Studio 可以做同样的事情(不确定)。最后但同样重要的是,请记住 Android Studio 和 Gradle Android 插件都是早期访问预览版。

    【讨论】:

      【解决方案3】:

      我曾尝试摆弄 Android Studio 和 IntelliJ Idea 有一段时间了,我最好的选择是从 eclipse 中导出所有内容。您可以按照以下步骤操作(这是我通常会做的事情.. 似乎不是一个好主意,但它确实有效:))

      1. 打开 ADT 或 Eclipse 并设置一个新的工作区。

      2. 创建应用程序并将库项目作为库添加到这些应用程序。库项目需要再次导入工作区(我没有详细说明,我想你知道它)

      3. 来自File > Export > Android > Generate Gradle Build Files,它将为整个工作区生成 gradle 构建文件。然后就可以在IDEA中打开了。

      如果有帮助请回复。

      【讨论】:

      • 很高兴得到快速答复!你是什​​么意思我必须再次导入库?是否必须在创建库后将其删除,然后重新导入?
      • 我没有把你带到那里。我假设您有一个库项目,其代码可以在开发过程中更改,并且您将其用于 5 个应用程序。所以我只是想你可以将库添加到 5 个应用程序中(全部在 eclipse 中,我们应该先将库导入工作区),然后将整个工作区导出到 gradle。然后在 IDEA 中导入后,它会在每次自动更改时再次编译库。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      相关资源
      最近更新 更多