Index: maven-generator-plugin/src/java/org/codelutin/generator/plugin/GeneratorPlugin.java diff -u maven-generator-plugin/src/java/org/codelutin/generator/plugin/GeneratorPlugin.java:1.1.1.1 maven-generator-plugin/src/java/org/codelutin/generator/plugin/GeneratorPlugin.java:1.2 --- maven-generator-plugin/src/java/org/codelutin/generator/plugin/GeneratorPlugin.java:1.1.1.1 Fri Apr 14 12:07:46 2006 +++ maven-generator-plugin/src/java/org/codelutin/generator/plugin/GeneratorPlugin.java Wed Jul 23 10:14:40 2008 @@ -23,34 +23,43 @@ * Created: 14 avril 2006 * * @author ruchaud - * @version $Revision: 1.1.1.1 $ + * @version $Revision: 1.2 $ * - * Last update: $Date: 2006-04-14 12:07:46 $ - * by : $Author: ruchaud $ + * Last update: $Date: 2008-07-23 10:14:40 $ + * by : $Author: tchemit $ */ package org.codelutin.generator.plugin; -import java.io.File; - import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.project.MavenProject; import org.apache.tools.ant.BuildLogger; import org.apache.tools.ant.NoBannerLogger; import org.apache.tools.ant.Project; import org.codelutin.generator.GeneratorTask; +import java.io.File; + /** * Effectue toutes les générations et copie les fichiers générés * dans le répertoire de compilation - * + * * @goal generate */ public class GeneratorPlugin extends AbstractMojo { + + /** + * @description Dépendance du projet. + * @parameter default-value="${project}" + * @readonly + */ + protected MavenProject project; + /** * Répertoire source - * + * * @parameter alias="srcGenDest" * @required */ @@ -58,7 +67,7 @@ /** * Répertoire cible - * + * * @parameter * @required */ @@ -66,6 +75,7 @@ /** * Templates à utiliser, séparés par des virgules + * * @parameter * @required */ @@ -73,7 +83,7 @@ /** * Fichier à inclure - * + * * @parameter * @required */ @@ -81,54 +91,79 @@ /** * Nom par défaut du paquetage généré - * + * * @parameter expression="org.codelutin.${project.artifactId}" */ protected String defaultPackage; - + + /** + * Flag pour indiquer si on doit ajouter le repertoire de generation dans les répertoires + * de compilation du project Maven Nom par défaut du paquetage généré + *
+ * TODO Ce flag doit disparaitre dans la prochaine release (uniquement utilisée pour compatibilité) + * + * @parameter expression="${generator.addCompileDirectory}" default-value="false" + */ + protected boolean addCompileDirectory; + + /** * Ecrase les fichiers générés - * + * * @parameter default-value="false" */ private boolean overwrite = false; - + public void execute() throws MojoExecutionException, MojoFailureException { getLog().info("Effectue toutes les générations et copie les fichiers générés " + "dans le répertoire de compilation"); /* Création d'un projet ant */ Project project = new Project(); - + BuildLogger logger = new NoBannerLogger(); logger.setMessageOutputLevel(org.apache.tools.ant.Project.MSG_INFO); logger.setOutputPrintStream(System.out); logger.setErrorPrintStream(System.err); - + project.init(); project.getBaseDir(); project.addBuildListener(logger); - + /* Création de la tâche ant */ GeneratorTask generator = new GeneratorTask(); generator.setProject(project); generator.setTaskName("Generator"); - + /* Configuration */ generator.setOverwrite(overwrite); - + generator.setTemplates(templates); - + generator.setSrcdir(srcDirGen); - + destDirGen.mkdirs(); generator.setDestdir(destDirGen); - + + if (addCompileDirectory) { + fixCompileSourceRoots(); + } + generator.setProperties("defaultPackage=" + defaultPackage); - + generator.setIncludes(includes); - + /* Execution */ generator.execute(); } + + /** + * permet d'ajout le répertoire de génération des fichiers java dans les répertoires + * de compilation du projet Maven. + */ + protected void fixCompileSourceRoots() { + if (!project.getCompileSourceRoots().contains(destDirGen.getPath())) { + project.addCompileSourceRoot(destDirGen.getPath()); + } + } }