Die Datei muss ja erstellt und beim Beenden vielleicht wieder gelöscht werden.
Was meinst Du beim Beenden? Es geht doch um den Build Prozess und nicht um den Ablauf bei Programmstart.
Der Build Prozess verarbeitet die Projektdateien:
- Die Projekt Konfiguration (Bei Dir die Gradle Dateien)
- Die Source Dateien (Die werden übersetzt)
- Die Resource Dateien (Die werden kopiert)
- Die Ergebnisse werden dann ggf. weiter verarbeitet: Evtl. werden Abhängigkeiten kopiert, jar Dateien erzeugt, per JLink und JPackage Images / Installer erstellt ....
(Ist etwas vereinfacht / grob dargestellt. Es kann auch Code erzeugt werden u.s.w.)
Und im Rahmen dieses Prozesses wird dann auch eine Ressource Datei erzeugt. So wie auch viele .class Dateien erzeugt werden. Und das landet dann ggf. in alles in einem jar / images / was auch immer.
==> Da wird also nichts gelöscht!
Wenn Du in einem Projekt ein "clean" startest, dann sollte alles, was generiert wurde, auch gelöscht werden. Daher wäre die Frage, wo denn generierte Ressourcen in Gradle hin gehören. Du könntest diese Resource Datei auch direkt im entsprechenden Zielverzeichnis generieren. Das wäre recht sauber, denn das wird beim clean gelöscht.
ABER: Dann hast Du ggf. wieder das Problem, dass die IDE irgend welche Sonderlocken macht und dann versucht, den Code ohne diese Datei zu starten. (Muss man ggf. ausprobieren!)
Ich möchte da keine Wertung machen. Ich habe bei meinen Testprojekten zu Spring Boot mit Angular es so gemacht, dass die Angular App direkt im Resource Folder erzeugt wird. (Ich habe diese dann sogar eingecheckt - das ist aber eher schlecht.) Ich muss gestehen, dass ich es nicht so tief durchdacht hatte und da eher Anderen "blind" gefolgt bin. Da kann man drüber diskutieren, aber da sind wir jenseits der Funktionalität sondern rein bei einer Clean Project Diskussion. (Und der Ansatz war so halt leichter nachzuvollziehen: Man sieht nach dem ng Aufruf die Dateien in dem resource Folder und die folgenden Schritte sind dann nichts besonderes mehr. Und es gibt ja auch so Dinge wie "hot deploy" - eine Veränderung in der IDE schiebt in den laufenden Prozess (den man gerade Testet / Debugt) die Änderungen rein.)
Aber in Maven sieht das auch etwas anders aus. Da schreibt man eine Properties Datei mit Platzhaltern und im Maven hat man ein Plugin, dass diese Platzhalter dann austauscht. Damit hat man einen sauberen Stand und das Plugin kümmert sich um die Anpassung. Das aber nur ein kleiner Hinweis am Rande.