使用Gradle 4.0.2复制到项目目录之外的目录

使用Gradle 4.0.2复制到项目目录之外的目录,gradle,build.gradle,Gradle,Build.gradle,我有一个生成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/d

我有一个生成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目录


有人能帮忙吗?

首先,请注意在文件(…)中使用
是多余的,因为每次调用
到(…)
都将通过
项目文件(…)
进行评估

如您所知,
文件(…)
以以下方式处理字符串:

  • 一种字符序列,包括字符串或GString。相对于项目目录进行解释。以
    file:
    开头的字符串被视为文件URL
因此,解决问题的一种方法是使用绝对文件URL

但是,如果您继续阅读文档,您将看到Java
File
对象是受支持的。因此,您可以简单地创建这样一个对象:

into new File('C:/your/absolute/path')

首先,请注意,在文件(…)中使用
是多余的,因为对(…)
的每次调用都将通过
Project.file(…)
进行评估

如您所知,
文件(…)
以以下方式处理字符串:

  • 一种字符序列,包括字符串或GString。相对于项目目录进行解释。以
    file:
    开头的字符串被视为文件URL
因此,解决问题的一种方法是使用绝对文件URL

但是,如果您继续阅读文档,您将看到Java
File
对象是受支持的。因此,您可以简单地创建这样一个对象:

into new File('C:/your/absolute/path')