java - 如何将 gradle 多项目中的所有依赖项资源收集到 dist 文件夹中

标签 java scala gradle groovy build

这里是 gradle 的新手,我需要从我的依赖项项目的资源文件夹中(递归地)移动所有资源,包括当前编译的项目和具有特定名称的 concat 文件,即

dependencies {
   compile project(':stam-common')
   compile project(':stam-db-common')
   compile project(':stam-reco') 
}

假设我正在编译项目 stam-this,这取决于上面的模块。
我需要将四个项目中的每个项目及其依赖项中的所有文件移动到一个位置并连接所有 application.conf 文件。

我可以用一些 bash 脚本轻松地做到这一点,但需要它成为一个 gradle 任务。
任何的想法 ?

最佳答案

取决于您的 application.conf 中的内容您可能需要更复杂的东西,但简单的答案就是向每个项目询问该文件并将它们组合起来。

我们可以使用Java的streams api 和一些 Groovy 的 File#text简化 concat 循环

def allAppConfs = rootProject.subprojects.stream().
        // using `Project#file(String)` the path will be
        // relative to the project's root
        map({ proj -> proj.file('src/main/resources/application.conf').text }).
        collect(Collectors.toList()).
        join('\n')

关于java - 如何将 gradle 多项目中的所有依赖项资源收集到 dist 文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42695956/

相关文章:

java - <%@ 页面导入 ="com.sql.*"%> 错误

java - 无法在 Android Studio 中下载约束布局

java - Android 应用程序允许用户下载在线内容

java - Scala 除以零会产生不同的结果

scala - 1.+(2) 在 scala 中给出了正确的答案。如何?

android - 如何在 Gradle 中指定最新的提交版本

maven - 在本地存储库中发布自定义库jar文件

java - JSF - 如何将参数从一个 Controller 传递到另一个 Controller Action 事件?

scala - 如何在s""中插入双引号?

git - 如何将更改推送到多个分支