【问题标题】:Adding a global resource folder to gradle build to be made available for subprojects将全局资源文件夹添加到 gradle build 以供子项目使用
【发布时间】:2017-04-03 21:25:18
【问题描述】:

我有一个由多个子项目组成的 gradle 项目。我想添加一个资源文件夹,该文件夹与子项目位于同一文件夹中,以便在所有项目运行时位于所有项目的类路径中。

文件夹结构有点像:

root
|__subproject1
|__subproject2
|__subproject3
|__global_resources

我尝试过在根build.gradle 中做类似的事情:

allprojects {
    processResources {
        from("$rootProject/global_resources/")
    }
}

或者这个:

subprojects {
    dependencies {
        runtime fileTree(dir: "$rootProject/resources", includes: '*.txt')
    }
}

但是运行任何子项目都会报错,它需要的资源不可用。

我该怎么做?

不确定它是否有用,但这是一个 scala 项目。我不习惯写 gradle 任务,所以请不要回答“制作一个 gradle 任务来做到这一点”。我敢肯定它可能就这么简单,但我没有任何示例可供参考。

【问题讨论】:

    标签: scala gradle resources classpath


    【解决方案1】:

    我认为最简单和最易于重用的方法是将所有“全局”资源放在“global_resources/src/main/resources”中,将 build.gradle 添加到您的 global_resources 文件夹中:

    root
    |__..projects..
    |__global_resources
    |____src
    |______main
    |_________resources
    |___________ ...your resource files...
    |____build.gradle
    

    build.gradle

    apply plugin: "java"
    
    name="global_resources"
    

    然后将此项目包含在您的其他项目中:

    dependencies {
      compile project(":global_resources")
    }
    

    【讨论】:

    • 试过这个,但我仍然得到相同的结果。该项目已构建,我看到资源文件放置在构建目录中,但运行任何其他项目似乎都找不到该文件
    • 有没有办法在其他子项目的路径中也包含 global_resource 资源路径?
    • @smac89 如果它们在构建文件夹中......也许你没有正确访问它们?
    • 是的!我才意识到这一点。我使用的是 Scala 的 Source.fromFile 方法而不是 Source.fromInputStream...现在它正在工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2023-04-10
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多