次の groovy スクリプトを使用して、特定のファイル セット (Java ファイルなど) に変更を加えています。ここでは、まだ存在しない場合はファイルにパッケージを追加し、次のコードで作業を行います (ここで最適化を自由に提案してください)。そのファイルの改行文字を更新しますが、これはむしろ避けたいものですが、アドバイスはありますか?
void addIfRequired(def directory, def filePath) {
def inputFile = new File(filePath)
boolean containsPackage = false;
List<String> lines = inputFile.readLines();
for (def eachLine : lines) {
eachLine = eachLine.trim();
if (eachLine.startsWith("package ")) {
containsPackage = true
break
} else if (eachLine.startsWith("import ")) {
// Stop looking if we don't get package till import statement.
break;
}
}
if (!containsPackage) {
String lineSeparator = System.getProperty("line.separator");
// The following API generates the package name
def packageN = getPackage(inputFile, directory)
boolean packageAdded = false;
StringBuilder outputTxt = new StringBuilder();
for (def line : lines) {
if (!packageAdded && line.startsWith("import ")) {
outputTxt.append("package " + packageN + ";" + lineSeparator)
packageAdded = true;
}
outputTxt.append(line);
outputTxt.append(lineSeparator);
}
inputFile.write(outputTxt.toString());
}
}