1

我有一个带有子项目 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'
                    }
            }
        }
    }
}

但这不会编译。

任何建议如何做到这一点?

4

1 回答 1

2

不知道为什么,但它的工作方式如下:

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")

你不能添加FileString. 所以两者都可以完成工作:

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

演示可以在这里找到。

于 2015-11-23T12:16:48.743 回答