private Project updateProjectMain(Source src, Project prj, ResourceResolver resolver) {
		prj.setDescription(src.tagReader.getDescription().orElse(null));
		prj.setGav(src.tagReader.getGav().orElse(null));
		prj.setMainClass(src.tagReader.getMain().orElse(null));
		prj.setModuleName(src.tagReader.getModule().orElse(null));
		if (prj.getMainSource() instanceof JavaSource) {
			// todo: have way to turn these off? lets wait until someone asks and has a
			// usecase
			// where ability to debug and support named parameters is bad.
			prj.getMainSourceSet().addCompileOption("-g");
			prj.getMainSourceSet().addCompileOption("-parameters");
		}
		return updateProject(src, prj, resolver);
	}
Updates the given <code>Project</code> with all the information from the
<code>Source</code> when that source is the main file. It updates certain
things at the project level and then calls <code>updateProject()</code> which
will update things at the <code>SourceSet</code> level.

@param prj      The <code>Project</code> to update
@param resolver The resolver to use for dependent (re)sources
@return A <code>Project</code>
src/main/java/dev/jbang/source/ProjectBuilder.java