【问题标题】:Gradle distribution plugin: add files from subprojects in separate foldersGradle 分发插件:将子项目中的文件添加到单独的文件夹中
【发布时间】:2015-11-23 09:51:04
【问题描述】:

我有一个包含子项目 projectB 和 projectC 的多项目构建 (projectA)。每个子项目都有我想添加到 zip 中的资源。 projectB 的资源应位于 zip 中名为 projectB 的文件夹中。

我正在使用分发插件来创建 zip。此代码有效,但我会使用一些代码,无论子项目的数量和名称如何。

distributions {
    release {
        baseName 'release'
        contents {
            into('projectB') {
                from 'projectB/src/main/resources/'
            }
            into('projectC') {
                from 'projectC/src/main/resources/'
            }
        }
    }
}

我尝试了以下方法:

distributions {
    release {
        baseName 'release'
        contents {
            subprojects.each {
                p -> into(p.name + '-resources') {
                        from p.projectDir + '/src/main/resources/config'
                    }
            }
        }
    }
}

但这不会编译。

有什么建议可以做到这一点吗?

【问题讨论】:

    标签: groovy gradle build.gradle gradle-plugin


    【解决方案1】:

    不知道为什么,但它的工作原理如下:

    apply plugin: 'distribution'
    
    distributions {
      release {
        baseName 'release'
        contents {
          subprojects.each { p ->
            into("${p.name}-resources") {
              from("${p.projectDir}/src/main/resources/config")
            }
          }
        }
      }
    }
    

    好的,知道了。此行引起了问题:

    from(p.projectDir + "/src/main/resources/config")
    

    您不能将File 添加到String。所以两者都可以完成工作:

    from(p.projectDir.toString() + "/src/main/resources/config")
    from("${p.projectDir}/src/main/resources/config")
    

    可以在here找到演示。

    【讨论】:

    • 您写的是该行引起了问题,但又写道两者都可以完成工作?你的意思是把第一行改成别的吗?
    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多