1

所以我有基于多项目的 Grandle 构建,我使用 Kotlin 作为主要语言。假设默认项目被命名为app同时具有src/main/kotlinsrc/main/resources目录。奇怪的是,即使 Gradle 将其设置为正确的,我也无法从代码中访问资源。我将它与单项目构建(src作为主源目录的那个)进行比较,当我运行时:

javaClass.getResource("./")

两个项目都指向位于build/classes/kotlin/main/. 但是当我运行时:

javaClass.getResource("test.txt")

单项目指向build/resources/test.txt(正如预期的那样)但进入nullapp项目构建。当然文件存在于两个地方

我是否错过了全局build.gradle或项目中的某些配置build.gradle或其他配置?

项目结构和一些重要的文件部分:

+ app
| + src
| | + main
| | | + kotlin
| | | | - Main.kt
| | | + resources
| | | | - test.txt
| - build.gradle
- build.gradle
- settings.gradle

设置.gradle

include 'app'

构建.gradle

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.72'
}

version '0.0.1'

subprojects {
    apply plugin: 'java'
    apply plugin: 'org.jetbrains.kotlin.jvm''

    repositories {
        mavenCentral()
        jcenter()
    }

    dependencies {
        compile "org.jetbrains.kotlin:kotlin-stdlib"
        compile "org.reactfx:reactfx:1.4.1"
    }
}

应用程序/build.gradle

plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.9'
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-reflect:1.3.72"

    testCompile group: 'junit', name: 'junit', version: '4.12'
}

javafx {
    version = "11"
    modules = ['javafx.controls', 'javafx.graphics', 'javafx.fxml']
}

mainClassName = 'MainApp.MainApp'

主应用.kt

class MainApp {
  companion object {
    @JvmStatic
    fun main(args: Array<String>) {
      javaClass.getResource("test.txt") // this gives null
    }
  }
}
4

0 回答 0