Gradle ear插件 - 在复制时拦截每个lib文件

时间:2015-05-01 12:34:05

标签: java gradle ear

我有以下build.gradle,它生成一个包含一个Bean jar的EAR文件,并在APP-INF / lib中包含该jar的所有依赖项。

apply plugin: 'ear'

dependencies {
    deploy(group: 'com.mycompany', name: 'MyServiceBean', version: '1.0.1')
    earlib project(path:':MyServiceBean', configuration: 'compile')

}

ear {
    libDirName 'APP-INF/lib'
    deploymentDescriptor {
        initializeInOrder = true
        displayName = "MyServiceEAR"
        description = "Description of the application."
    }
    eachFile { fcd ->
        //this only prints out files in the root of the EAR
        println "Copying file: " + fcd.name
    }
}

APP-INF / lib中的一些文件包含特定于环境的值(不是我的计划,我们现在无法更改的继承代码)。我在创建EAR文件时想要做的是

  • 循环遍历APP-INF / lib复制的每个jar
  • 提取该jar文件
  • 使用特定于环境的值替换某些文件中的占位符
  • 重新包装该jar文件
  • 继续将该新文件放入APP-INF / lib。

我知道如何进行重新包装,但我不知道如何循环进入APP-INF / lib的文件。

我的eachFile闭包只打印出EAR根目录中的文件名,即。 application.xml和MyServiceBean.jar。

如何遍历APP-INF / lib目录中的每个文件?

谢谢!

0 个答案:

没有答案