Brainstorming with @wilkinsona it became apparent that the AotGenerateMojo should not inherit from the same hierarchy as the one used to run the application. One problem is the spring-boot.run prefix used for command-line properties. Another is that it is hard to document those properties for both use cases.

We'd need to extract the logic to prepare the forked process in a separate class, which should reduce the complexity of the mojo implementations. This should address https://github.com/spring-projects/spring-boot/issues/31578 as well.