我想替换配置中的几行。编译代码之前的java文件。我所能找到的只是在复制过程中通过过滤器解析文件。一旦我必须复制它,我就必须把它保存在某个地方——这就是为什么我要寻找解决方案:在替换线路的同时复制到临时位置
src/replace eme/java
)$buildDir
下创建一个生成的src
目录,以便通过清洁
任务将其删除。您可以使用复制任务和替换令牌过滤器。例如:
apply plugin: 'java'
task generateSources(type: Copy) {
from 'src/replaceme/java'
into "$buildDir/generated-src"
filter(ReplaceTokens, tokens: [
'xxx': 'aaa',
'yyy': 'bbb'
])
}
// the following lines are important to wire the task in with the compileJava task
compileJava.source "$buildDir/generated-src"
compileJava.dependsOn generateSources
也许你应该试试ant的replaceregexp:
task myCopy << {
ant.replaceregexp(match:'aaa', replace:'bbb', flags:'g', byline:true) {
fileset(dir: 'src/main/java/android/app/cfg', includes: 'TestingConfigCopy.java')
}
}
此任务将用bbb
替换所有出现的aaa
。不管怎样,这只是一个示例,您可以根据自己的目的对其进行修改,或者使用ant尝试一些类似的解决方案。
为了补充lance java的回答,如果您只想更改一个值,我发现这个习惯用法更简单:
task generateSources(type: Copy) {
from 'src/replaceme/java'
into "$buildDir/generated-src"
filter { line -> line.replaceAll('xxx', 'aaa') }
}
注意:请记住,只有在源文件更改时,复制任务才会运行。如果希望根据其他条件进行替换,则需要使用Gradle的增量构建功能来指定。
问题内容: 我想在编译代码之前替换Config.java文件中的几行。我所能找到的就是在复制过程中通过过滤器解析文件。一旦我必须将其复制,就必须将其保存在某处- 这就是我寻求解决方案的原因:在替换行时复制到临时位置>删除原始文件>将重复的文件复制回到原始位置>删除临时文件。有更好的解决方案吗? 问题答案: 也许您应该尝试使用类似ant的replaceregexp的方法: 此任务将用替换所有的出现。
问题内容: 我目前有一个包含字符A,B和C的字符串,例如,该字符串看起来像 其他不包含A,B或CI的随机变量想分别用“ A”,“ B”和“ C”替换A,B和C,这是我目前正在做的最好方法: 问题答案: 如果A,B和C是完全相同的单个字符,cletus的答案就可以正常工作,但是如果它们可以是更长的字符串,而您只是出于示例目的将它们称为A,B和C,则cletus的答案就可以。如果它们是更长的字符串,则
本文向大家介绍替换Java字符串中的子字符串,包括了替换Java字符串中的子字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符串。 我们想将子字符串“ Dead”替换为“ Alive”。为此,让我们使用以下逻辑。在这里,我们使用了while循环,并在其中找到了要替换的子字符串的索引。这样,我们一个接一个地替换了整个子字符串。 以下是替换子字符串的完整示例。 示例 输出结果
问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有
主要内容:replace() 方法,replaceFirst() 方法,replaceAll() 方法在 Java 中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll(),本文将详细介绍它们的使用方法。 replace() 方法 replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下: 其中,oldChar 表示被替换的字符串;newChar 表示用于替换的字符串。repla
问题内容: 我有一个名为log.txt的文本文件,它具有以下数据 第一个逗号之前的数字是指定每个项目的索引。 我想做的是读取文件,然后将给定行中字符串的一部分(例如textFiles / a.txt)替换为另一值(例如something / bob.txt)。 这就是我到目前为止 问题答案: 一种方法是使用: 您还可以使用正则表达式,或查找搜索字符串在一行中的何处。