void replaceAllTokensIn(File directory) { Replace replacer = new Replace(); replacer.setProject(getProject()); replacer.setDir(directory); Map<String, String> map = Maps.newLinkedHashMap(); // this has to go first map.put(directory.getAbsolutePath(), remotedir.getAbsolutePath()); map.putAll(Maps.transformValues(shiftMap, new Function<String, String>() { @Override public String apply(String in) { return remotebase + ShellToken.FS.to(osFamily) + in; } })); map.putAll(replace); for (Entry<String, String> entry : map.entrySet()) { Replacefilter filter = replacer.createReplacefilter(); filter.setToken(entry.getKey()); filter.setValue(entry.getValue()); } replacer.execute(); }