I suspect a more common approach will be to generate module-info.class directly, skipping the Java source file, since module-info.class is extensible whereas module-info.java is not. That's what I do ATM, but if we could add annotations to module-info.java, it could become extensible. I could even annotate versions and optional imports in there ;)