- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下似乎是 gradle 中过滤资源文件子集的常用习惯用法。我明白它的作用,但我无法解读语法:
processResources {
filesMatching('foo/*.html') {
filter(ReplaceTokens, tokens: [key: 'value'])
}
}
到目前为止我的理解是:
processResources是Java插件的任务,是Copy类型。
我正在通过调用以下方法配置 processResources 任务:
AbstractCopyTask filesMatching(String pattern, Action<? super FileCopyDetails> action)
该方法的第一个参数是模式字符串。我提供“foo/*.html”作为模式。
该方法的第二个参数是 Action
只有一个方法的接口(interface)。我提供了一个闭包作为接口(interface)的实现。
这就是我迷路的地方。在闭包主体中,我正在调用过滤器方法。它从何而来?它也不是来自隐式项目对象。而且,过滤器方法甚至不应用于任何文件对象。 token 是如何替换的?而且,ReplaceTokens
是一个类,将类名作为参数传递在句法上如何工作?
我没有把这些点联系起来,我什至不确定这些点是在 gradle 中还是在 groovy 中。我已经通过文档和博客进行了一段时间的研究,但运气不好。我感谢一些帮助。谢谢。
最佳答案
您要查找的filter
方法在CopySpec
接口(interface)中定义,正好是here . filesMatching
也在 CopySpec
中声明,因为 ProcessResources
-> Copy
-> AbstractCopyTask
和 AbstractCopyTask
实现 CopySpec
这些方法在任务本身上调用。
token 替换由 ReplaceTokens
完成来自 Ant 的类,当涉及到 groovy String == String.class
中的语法时。过滤本身在 this 中运行类。
我可能向您推荐的是下载 gradle 源代码,将它们导入 IDE 并从 ProcessResourcess
类开始旅程 - 这是了解发生了什么的最简单方法在幕后。
关于gradle - 了解 gradle processResources 过滤器语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359843/
等级:如何自定义processResources以更改jar中的资源文件路径? 例如: foo/a.xml --> foo/bar/a.xml 类似于: copy tree with gradle
我们有一个可选的 gradle 任务 docker这取决于任务 war ,如果执行,需要生成一个带有额外文件的war文件。这个额外的文件可以添加到 processResources 中的资源中。任务(
在 jar 任务中,我想替换 conf 文件中的一些文本。 jar { ext { excludedClasses = ["com.MyClass1", "com.MyClas
我希望这是一个简单的问题,但我没有找到答案。 我想让 build.gradle 文件通过替换某些变量来设置我的 Spring Boot 应用程序中的版本。这与广告一样有效: def tokens =
我喜欢在我的 gradle 项目中过滤特定的 java 资源。有些文件应该只替换内容,有些文件也应该重命名(并替换不同的内容)。 我的 gradle java 项目设置是: > cat build.g
如何在包含 $ 字符的文件上执行 gradle processResources 而不转义文件中的 $? 按照 Spring Boot reference docs 的建议,我有一些静态 html 文
我花了几个小时来解决我认为与损坏文件有关的问题。基本上我在 spring boot 应用程序中使用 FlyingSaucer 来生成语言兼容的 pdf。我所有的日文/中文/俄文字符都是空白的。经过深入
环境: - Spring Boot - Gradle - Kotlin 我在 Gradle 中配置了自动属性扩展以在我的 application.yml 中使用 gradle 属性 processRe
以下似乎是 gradle 中过滤资源文件子集的常用习惯用法。我明白它的作用,但我无法解读语法: processResources { filesMatching('foo/*.html') {
我必须从 processResources gradle 任务中排除 xsl 和 xsd 类型的文件。目前我只排除了 xsl 文件和我的 build.gradle 片段,如下所示: processRe
我们有一个奇怪的问题,即删除 META-INF 文件夹和编译类以启动的 compileJava 任务随机且不频繁地运行,但 processResources 任务报告是最新的,即使 META-INF
在 IntelliJ 中运行或调试 Java 应用程序时,src 中捆绑的资源需要处理的文件夹。如果实际应用程序恰好是一个 gradle 项目,IntelliJ 需要运行 processResourc
我在基于 groovy 的构建脚本中有以下内容。如何在基于 kotlin 的脚本中执行相同的操作? processResources { filesMatching('application.
我目前正在做一个项目。该项目的资源包含许多 json 文件,这些文件最终都在最终的 jar 中。我已经在处理资源了。就像重命名文件和替换某些其他文件中的某些字符串一样。所以 processResour
我们正在从 Java/Gradle 堆栈迁移到 Scala/SBT。我们的 gradle 构建正在利用一个名为 processResources 的任务和一些名为 ReplaceTokens 的 An
替换我的 Spring Boot 中的属性 application.yml我已经添加: processResources { filesMatching("**/application.yml
我有一个 IDEA 2016.1 Enterprise 和一个 Gradle 2.12 多模块项目。在其中一个模块中,在 src/main/resources 中,我有一个文件,我希望 Gradle
当使用 gradle build 命令从命令行构建时,属性字段被正确替换,但是,当使用 IntelliJ IDEA IDE 时,它不是。 代码在build.gradle ext { port
我是一名优秀的程序员,十分优秀!