Since you use UEFI, you don’t have to use GRUB. It basically consists 90% of cruft left over that was needed for BIOS boot, and has a lot of moving parts and bad design (such as a single config file which has to be shared between OSes, which is so complex it needs a generator for it).
Try systemd-boot, it’s lightweight and well designed.
Anyway, looks like the target parameter is default now, the “esp” in the arch command is supposed to be substituted for the ESP path, for example /efi, so the only difference is bootloader-id. Which looks like that’s the label that show up in your UEFI setup for the boot entry.
Gradle is pretty awful actually, I’ve had to deal with it for years when I was writing Java. It’s pretty much the #1 reason I’ve stopped doing anything Java related.
Meson is the well designed option for C family languages. It also has support for Java, Rust, Swift, and a couple other languages. C is the most well supported though I think.
It also has a built-in dependency downloader that respects the system installed packages (and therefore distro packagers).