protected Path generatePom() throws IOException {
		Template pomTemplate = TemplateEngine.instance()
			.getTemplate(ResourceRef.forResource("classpath:/pom.qute.xml"));

		Path pomPath = null;
		if (pomTemplate == null) {
			// ignore
			Util.warnMsg("Could not locate pom.xml template");
		} else {
			Project project = ctx.getProject();
			String baseName = Util.getBaseName(project.getResourceRef().getFile().getFileName().toString());
			MavenCoordinate gav = getPomGav(project);
			String pomfile = pomTemplate
				.data("baseName", baseName)
				.data("group", gav.getGroupId())
				.data("artifact", gav.getArtifactId())
				.data("version", gav.getVersion())
				.data("description", project.getDescription().orElse(""))
				.data("dependencies", ctx.resolveClassPath().getArtifacts())
				.render();

			pomPath = getPomPath(ctx);
			Files.createDirectories(pomPath.getParent());
			Util.writeString(pomPath, pomfile);
		}

		return pomPath;
	}
This class takes a <code>Project</code> and compiles it.
src/main/java/dev/jbang/source/buildsteps/CompileBuildStep.java