0

我尝试使用 gradle 正确配置多项目构建。

困难在于我有三个项目并且想要构建一个Android应用程序以及一个普通的Java8应用程序(可运行的jar)。因此,我有 Android 项目、Java8 应用程序项目和一个普通的 java 项目,它们具有两个应用程序共享的公共代码。

通过以下设置,我可以编译这两个应用程序。

  • Android 项目应用了“com.android.application”插件并依赖于 Common 项目
  • Java Application 项目应用了“application”插件,并且依赖于 Common 项目
  • Common 项目应用“java”插件

为了使用 lambda 表达式,我在 Android 项目中使用了 retrolambda,在 Java 应用程序中使用了 Java 8。显然,我不能在 Common 项目中使用完整的 Java8,因为这会破坏 Android 应用程序。

为了能够在 Common 项目中使用 lambda 表达式,我必须将 sourceCompatibility 设置为 Java 1.8。然而,这也使得在 Common 项目中使用例如 Java8 Stream API 成为可能。然后,当我编译 Android 项目时,我没有收到编译错误。显然,Android 应用程序会在运行时崩溃。

所以我的问题是:如何配置 Common 项目以便能够在标准 Java8 应用程序和 Android 应用程序中使用它,但是当我使用无法在 Android 上使用的东西时会出现编译错误。

4

0 回答 0