我有一个生成war文件的gradle构建。我想将war文件复制到我的应用程序服务器' dropins目录,它位于项目目录之外的某个位置。我有以下复制任务来执行此操作。
task copyWarToDropins(type: Copy,dependsOn:[war]) {
from './build/libs/bds-service-token-1.0-SNAPSHOT.war'
into file('/apps/dropins') // want to copy to 'C:/apps/dropins' directory
rename { fileName -> 'bds-service-token.war' }
}
build.dependsOn copyWarToDropin
它评估/ apps / dropins相对项目目录并复制到那里。我已经尝试了许多我能想到的方法,但无法将其复制到C:/ apps / dropins目录。
有人可以帮忙吗?
答案 0 :(得分:2)
首先请注意,使用into file(...)
是多余的,因为无论如何都会通过into(...)
对Project.file(...)
的每次调用进行评估。
正如您在the documentation中所读到的那样,file(...)
以下列方式处理字符串:
- CharSequence,包括String或GString。解释相对于项目目录。以
file:
开头的字符串将被视为文件URL。
因此,解决问题的一种方法是使用绝对文件URL。
但是,如果继续阅读文档,您将看到支持Java File
对象。所以你可以简单地创建这样一个对象:
into new File('C:/your/absolute/path')