无法在多项目Kotlin Gradle构建中访问资源

问题描述

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

javaClass.getResource("./")

两个项目都指向位于build/classes/kotlin/main/的同一目录。但是当我跑步时:

javaClass.getResource("test.txt")

单个项目指向build/resources/test.txt(这与预期的一样),但是在多项目构建的null中得到app。当然文件在两个地方都存在

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

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

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

settings.gradle

include 'app'

build.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"
    }
}

app / 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'

MainApp.kt

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)