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

时间:2018-06-02 12:14:32

标签: 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/dropins' directory
    rename { fileName -> 'bds-service-token.war' }
} 

build.dependsOn copyWarToDropin

它评估/ apps / dropins相对项目目录并复制到那里。我已经尝试了许多我能想到的方法,但无法将其复制到C:/ apps / dropins目录。

有人可以帮忙吗?

1 个答案:

答案 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')