Zum Inhalt

Praktische Groovy Scripte für die GConsole unter IntelliJ

Die Konsole findet man unter dem Menu “Tools”, s. Bild:

Groovy Console in Intellij Starten
Und jetzt kann man folgendes anstellen…..

 

Mit dem folgenden Script in Groovy-Console kann man alle nicht Java-Dateien aus dem Maven “src/main/java” nach “src/main/resources” verschieben.
Bei diesem Beispiel wird Groovy mit Java 8 gemischt.

import java.nio.file.Files
import java.nio.file.Paths
import java.nio.file.StandardCopyOption

import static groovy.io.FileType.FILES

def dir = new File('src/main/java')

println dir.absolutePath

def list = [];
dir.eachFileRecurse(FILES) {
    if (!it.name.endsWith('.java')) {
        list << it
    }
}

println "moving all none java files to resource directory...."

list.each {
    def newPath = it.toString().replace("src${File.separator}main${File.separator}java".toString(), "src${File.separator}main${File.separator}resources".toString())
    !Files.exists(Paths.get(newPath)) ? Files.createDirectories(Paths.get(newPath)) : "";

    Files.move(Paths.get(it.toString()), Paths.get(newPath), StandardCopyOption.REPLACE_EXISTING)
}

 

im Folgenden ist noch ein reinese Groovy Beispiel:
import static groovy.io.FileType.FILES

def dir = new File('src/main/java')

println dir.absolutePath

def list = [];
dir.eachFileRecurse(FILES) {
    if (!it.name.endsWith('.java')) {
        list << it
    }
}

list.each {
    def newPath = it.toString().replace("src${File.separator}main${File.separator}java".toString(), "src${File.separator}main${File.separator}resources".toString())


    def src = new File(it.toString())
    def dst = new File(newPath)
    dst.getParentFile().mkdirs()
    if (src.exists()) {
// << entspricht einem "append" 
        dst << src.text
        src.delete()
    }
}

Maven Verzeichnisse anlegen:

new File("src/main/resources").mkdirs()
new File("src/main/java").mkdirs()

new File("src/test/resources").mkdirs()
new File("src/test/java").mkdirs()

In der Konsole neben dem Playbutton kann man zusätzlich noch den Context der Konsole wechseln, so dass man das Script für unterschiedliche Module ausführen kann, s. Abbildung.

2016_08_17_12_49_22_GeossXP_Project_C_Users_224759_Projekte_trunk_geossxp_GeossXP_Project_Bu

Dateien mit Groovy (und Java8) verändern

import java.nio.charset.Charset
import java.nio.file.*
import java.util.stream.Collectors

def path = Paths.get("src/main/java/com/cloudsurfers/MyBloatedClass.java")
List result = Files.lines(path, Charset.forName("ISO-8859-1")).filter({ line ->
    return !line.contains("* @generatedFrom ")
}).collect(Collectors.toList())

// todo check if sync is the correct option (WRITE?)
Files.write(path, result, Charset.forName("ISO-8859-1"), StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.SYNC)

Skript zum Anlegen der Monatsverzeichnisse

Das folgende Skript hat mit Intellij nichts am Hut, ist aber praktisch um automatisch für ein Jahr die Monatsverzeichnisse anzulegen:

import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat
for(int i = GregorianCalendar.JANUARY;i<=GregorianCalendar.DECEMBER;i++){
   new File("${new DecimalFormat("#00").format(i+1)}. ${new DateFormatSymbols().getMonths()[i]}.${new SimpleDateFormat("YYYY").format(Calendar.getInstance().getTime())}").mkdirs()
}
Published inGroovyProgrammieren

Schreibe den ersten Kommentar

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.