如何将JavaFx项目转换为Gradle项目?

时间:2018-07-19 07:48:26

标签: eclipse gradle javafx

我正在使用Eclipse构建JavaFx项目,并且具有这样的文件结构:

Project │ .classpath │ .gitignore │ .project │ build.fxbuild │ README.md │ (sqlite).db (*local database this project operates on) │ ├───.settings │ ... │ ├───bin │ ... │ ├───lib │ ... │ └───src ├───application | ... │ Main.java │ ├───controllers │ ... │ ├───css │ ... │ ├───fxml │ ... │ └───resources 123.jpg

如何将其转换为gradle项目?我是gradle的新手,而且很难找到入门文档。

*我正在使用JavaFx 8和jdk-9。

1 个答案:

答案 0 :(得分:0)

  

我很难找到入门文档。

Gradle有充分的文献资料,如果您在Google上搜索,也会发现很多初学者的教程,并且GitHub上有很多示例。 参见https://guides.gradle.org/building-java-applications/

文档非常繁琐,您还需要熟悉一些概念。首先,您需要掌握以下概念:

  • 项目结构
    Gradle使用Maven引入的默认文件夹结构:
    src/main/java用于Java源代码
    src/main/resources获取资源(捆绑到JAR / WAR / EAR中)
    src/test/java用于Java测试源
    src/test/resources获取测试资源
  • 构建文件
    build.gradle文件定义您的项目及其构建方式。每个项目/人工制品都有一个 groupId artefactId 版本
  • 构建任务
    Gradle项目使用插件(例如用于构建Java项目的“ java”插件)。了解构建任务(cleartestbuilddeploy,执行gradle tasks以列出所有任务。
  • 依赖项
    不应下载您使用的外部库并将其放入项目lib文件夹中,而应声明对库的依赖关系(在Maven Central上浏览它们。Gradle将非常注意依赖管理,自动下载库和临时依赖。
  • 外部资源加载
    您的项目包含一个文件数据库。它是只读的吗?将其捆绑为资源,并通过类加载器而不是文件加载。它可写吗?将其保留在项目之外,并通过URL或文件路径进行访问。考虑使URL /路径可配置(命令行参数)。

这里是通用build.gradle,我将其用作项目的入门(通过更简洁的方法来管理依赖项),对于JDK 9/10/11 +,您可以将兼容性Java版本更改为9/10 / 11岁以上:

defaultTasks 'clean', 'build'
apply plugin: 'java'

description = 'Example Java Project'
group = 'org.test'
version = '1.0.0-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'

repositories {
    jcenter()
}

ext.libs = [
        testbase: [
                "junit:junit:4.12"
        ],
        loggingAPI   : [
                "org.slf4j:slf4j-api:1.7.25"
        ],
        loggingImpl  : [
                "org.slf4j:jcl-over-slf4j:1.7.25",
                "org.slf4j:jul-to-slf4j:1.7.25",
                "ch.qos.logback:logback-classic:1.2.3"
        ]
]

dependencies {
    testCompile libs.testbase
    compile libs.loggingAPI
    compile libs.loggingImpl
}