【问题标题】:Gradle build for 2 platforms: JavaFX and Android. How to?Gradle 为 2 个平台构建:JavaFX 和 Android。如何?
【发布时间】:2021-12-11 18:53:51
【问题描述】:

我有一个可在 2 个平台上运行的应用:Android 和 JavaFX。

基本上,我的来源如下所示:

java
   |
   |---android //android specific sources
   | 
   |---common  //plain java common sources
   |
   |---fx      //JavaFX specific sources

目前我正在使用 2 个不同的构建文件,其中一个 build.android.gradle 和另一个 build.fx.gradle 并根据情况立即将它们重命名为 build.gradle。我的意思是这是一场奇怪而真实的噩梦。

我的意图是拥有 2 个不同的 build.gradle 文件(放置在不同的文件夹中?)或单个 build.gradle 构建适用于 Android 的 APK 和适用于 JavaFX 的 JAR

问题是:如何做到这一点?

【问题讨论】:

  • 你在使用gluon吗?如果是这样,他们有一个支持页面和他们在 StackOverflow 上使用的特定标签。如果不是,请忽略此评论。
  • openjfx 是为许多平台构建的,并使用 gradle 作为其主要构建系统。所以也许,它的构建源可能会提供一些关于如何实现你想要的建议,尽管我猜它可能非常复杂并且做的事情与你的要求有点不同。
  • @jewelsea,确定我使用的是 openjfx,但它不能解决我的问题。我必须分别为 Android 和 openjfx 使用 2 个不同的构建文件。
  • 我的意思是查看我链接的 openjfx 存储库中的构建文件。它主要从一个 build.gradle 为许多不同的平台构建许多模块和系统,我的建议是也许研究一下。它可能会帮助您回答“两个不同的 build.gradle 文件或单个 build.gradle”(openjfx 主要使用单个文件但可以使用其他文件)和“如何实现这一点?”的问题。 (openjfx build 两者都有)但正如我所说,它可能方式比您需要的更复杂,并且几乎可以肯定有一种更简单的方法(我对 gradle 的了解不足,无法直接提供帮助)。
  • 好的,我明白了你的想法,看起来很有用

标签: java android gradle javafx cross-platform


【解决方案1】:

我建议使用 gradles 建议的项目结构,并将代码库和 java 核心作为单独的子项目。 JavaFx 和 Android 项目都可以依赖于 java 项目。然后,您可以只构建其中一个,也可以同时构建两者。 Gradle 也会在需要时自动重建 java 基础。

Gradle project structure

【讨论】:

  • 是的,你是对的。解决方案很简单:将所有内容划分为 3 个子项目:common - java 库,fx - 包含 common 和 android 包含相同的 common 子项目。
猜你喜欢
  • 2020-08-18
  • 1970-01-01
  • 2023-03-06
  • 2017-06-06
  • 1970-01-01
  • 2012-01-12
  • 2013-05-19
  • 2019-08-08
  • 1970-01-01
相关资源
最近更新 更多