【问题标题】:Making a cross-platform build of JavaFX using Gradle使用 Gradle 跨平台构建 JavaFX
【发布时间】:2020-08-18 03:23:10
【问题描述】:

我正在使用 Gradle 和 JavaFX 开发一个新项目。 我以前能够使用 Maven 创建跨平台构建,具有以下 pom 依赖项:

<dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>13</version>
            <classifier>win</classifier>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>13</version>
            <classifier>linux</classifier>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>13</version>
            <classifier>mac</classifier>
        </dependency>

如何使用 Gradle 做类似的事情? 我尝试了以下方法,但没有成功。 分类器语法不正确吗?

compile group: 'org.openjfx', name: 'javafx-graphics', version: '11.0.2:win'
compile group: 'org.openjfx', name: 'javafx-graphics', version: '11.0.2:linux'
compile group: 'org.openjfx', name: 'javafx-graphics', version: '11.0.2:mac'

任何提示将不胜感激!

【问题讨论】:

  • 你的意思是“跨平台构建”下有依赖的jar吗?

标签: java maven gradle javafx


【解决方案1】:

Gradle 中的语法确实不正确。 Documentation 将向您展示不同的支持语法。

最常见的两种是您使用的地图样式和: 分隔符号。

因此,以您的一个依赖项为例,您需要使用以下任一:

  • compile group: 'org.openjfx', name: 'javafx-graphics', version: '11.0.2', classifier: 'win'
  • compile 'org.openjfx:javafx-graphics:11.0.2:win'

请注意,您还应该停止使用compile 配置,而改用implementation。请参阅this explanation 以了解有关此主题的更多信息。

【讨论】:

    【解决方案2】:

    解决办法原来是下面的gradle构建依赖:

    implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'win'
    implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'mac'
    implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'linux'
    implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'win'
    implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'mac'
    implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'linux'
    implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'win'
    implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'mac'
    implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'linux'
    implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'win'
    implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'mac'
    implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'linux'
    

    这允许在任何操作系统上运行 javafx gradle 构建。

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多