Gradle copy: filesMatching(.) 多个没有模式的文件

Gradle copy: filesMatching(...) multiple files without a pattern


Gradle copy: filesMatching(.) 多个没有模式的文件 已获得2个解决方法 2020-08-19 06:03:30 gradle

Gradle copy: 不带模式的文件匹配 (多个文件).大肠杆菌 (E.g.,

task copyFoo(type: Copy) {

   from ("/path") {
      filesMatching("foo.xml") {
         filter(ReplaceTokens, tokens : [VERSION, '1.2'])
      }

      filesMatching("bar.xml") {
         filter(ReplaceTokens, tokens : [VERSION, '1.2'])
      }

      filesMatching("hello.xml") {
         filter(ReplaceTokens, tokens : [VERSION, '1.2'])
      }
   }

}

有没有办法合并它们?喜欢

      filesMatching("foo.xml" | "hello.xml" | "bar.xml") {
         filter(ReplaceTokens, tokens : [VERSION, '1.2'])
      }

模式可以是一个正则表达式吗?


Gradle copy: filesMatching(.) 多个没有模式的文件 方法1

当对你能做什么有疑问时,前往API文档.在这里,您将看到 filesMatching 方法采用一个描述Ant模式的字符串:

CopySpec文件匹配 (字符串模式,操作 <?超级FileCopyDetails> 操作)

为路径与指定蚂蚁样式模式匹配的每个文件配置FileCopyDetails.

没有采用正则表达式模式的方法.但是有一个重载的方法,它需要一个可迭代的 (像一个列表) 的蚂蚁模式:

CopySpec文件匹配 (Iterable<String> patterns,Action <?超级FileCopyDetails> 操作)

为其路径与任何指定的蚂蚁样式模式匹配的每个文件配置FileCopyDetails.

这意味着你可以做:

filesMatching(["bar.xml", "hello.xml", "foo.xml"]) {
   filter(ReplaceTokens, tokens : [VERSION: '1.2'])
}

Gradle copy: filesMatching(.) 多个没有模式的文件 方法2

https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events

import org.apache.tools.ant.filters.ReplaceTokens
task copyFoo2(type: Copy) {
    from 'build/path'
    into "build/copy"
    include "foo.xml", "bar.xml", "hello.xml" 
    filter(ReplaceTokens, tokens: [VERSION: '1.2'])
}

.htaccess .net .net-core 2d 3d 3d-printing abstract-syntax-tree actions-on-google actionscript-3 activemq acumatica adobe-xd aframe ag-grid air airflow ajax akka alert alexa algorithm alignment allure amadeus amazon-cognito amazon-deequ amazon-dynamodb amazon-ec2 amazon-redshift amazon-s3