diff --git a/maven-jnaerator-plugin/pom.xml b/maven-jnaerator-plugin/pom.xml index 52e84488..e3de749f 100644 --- a/maven-jnaerator-plugin/pom.xml +++ b/maven-jnaerator-plugin/pom.xml @@ -28,9 +28,14 @@ org.apache.maven - maven-project - 3.0-alpha-2 + maven-core + 3.0.5 + + org.sonatype.plexus + plexus-build-api + 0.0.7 + diff --git a/maven-jnaerator-plugin/src/main/java/com/jnaerator/JNAeratorMojo.java b/maven-jnaerator-plugin/src/main/java/com/jnaerator/JNAeratorMojo.java index cbe73d26..4b236919 100644 --- a/maven-jnaerator-plugin/src/main/java/com/jnaerator/JNAeratorMojo.java +++ b/maven-jnaerator-plugin/src/main/java/com/jnaerator/JNAeratorMojo.java @@ -19,6 +19,7 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.project.MavenProject; +import org.sonatype.plexus.build.incremental.BuildContext; import com.ochafik.lang.jnaerator.*; @@ -73,6 +74,16 @@ public class JNAeratorMojo */ private MavenProject project; + + /** + * @component + * @required + * @readonly + * + */ + private BuildContext buildContext; + + static File canonizeDir(File f) throws IOException { if (!f.exists()) f.mkdirs(); @@ -90,16 +101,16 @@ public void execute() List args = new ArrayList(); args.add(config.getAbsolutePath()); - + // Override settings from config file : args.add("-mode"); args.add(JNAeratorConfig.OutputMode.Directory.name()); args.add("-f"); args.add("-o"); - + File javaDir = canonizeDir(javaOutputDirectory); args.add(javaDir.toString()); - + project.addCompileSourceRoot(javaDir.toString()); if (generateScala) { @@ -108,6 +119,13 @@ public void execute() } com.ochafik.lang.jnaerator.JNAerator.main(args.toArray(new String[0])); + + //attempt to have eclipse adding the generated directory to it the source path + if (this.buildContext != null) { + this.buildContext.refresh(javaDir); + getLog().info( "Refreshing " + javaDir ); + } + } catch (Exception e ) { diff --git a/maven-jnaerator-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml b/maven-jnaerator-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml new file mode 100644 index 00000000..6b6081ac --- /dev/null +++ b/maven-jnaerator-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml @@ -0,0 +1,18 @@ + + + + + + + generate + + + + + false + true + + + + + \ No newline at end of file