自定义war任务并在Gradle中应用自定义资源

时间:2014-11-26 23:04:40

标签: gradle

我希望根据客户配置获得动态WAR任务。我创建了一个包含配置名称的数组,并尝试应用自定义行为:

ext.customerBuilds = ['customer1', 'customer2', 'customer3']

ext.customerBuilds.eachWithIndex() {
    obj, i ->
        task "dist_${obj}" (type:War) << {
            from "etc/customers/${obj}/deploy"
            println "I'm task number $i"
        }
};

这创建了我的三个任务,如dist_customer1等。现在我希望gradle使用src / main / webapp下的常规资源以及etc / customers / XXXX / deploy下的基于客户的资源,如from属性中所述。

但它不会拾取此文件夹中的任何文件。

我在这里做错了什么?感谢。

1 个答案:

答案 0 :(得分:2)

设置战争任务时

确保您不会意外使用'&lt;&lt;&lt;符号。 '&LT;&LT;'只是'Task#doLast'的快捷方式。所以改为:

ext.customerBuilds = ['customer1', 'customer2', 'customer3']

ext.customerBuilds.eachWithIndex() { obj, i ->
        task("dist_${obj}", type:War){
            from "etc/customers/${obj}/deploy"
            println "I'm task number $i"
        }
};

你可以在'src / main / webapp'中从语句中添加更多内容。