Introduce custom lifecycle for type eclipseFeature
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Dec 2008 22:40:31 +0000 (22:40 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Dec 2008 22:40:31 +0000 (22:40 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk/maven@1886 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

plugins/maven-argeo-pde-plugin/pom.xml
plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetForkMojo.java [deleted file]
plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetMojo.java [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/PackageElementMojo.java [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml
plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml
plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.mojos.xml

index 83117ef809df9c5d9eb0c7102607792542eacd89..ccc005ffb6e75003b6b6f2cae5f869e6c4a4096a 100644 (file)
@@ -1,7 +1,6 @@
 <project>\r
        <modelVersion>4.0.0</modelVersion>\r
-       <groupId>org.argeo.slc.maven.plugins\r
-       </groupId>\r
+       <groupId>org.argeo.slc.maven</groupId>\r
        <artifactId>maven-argeo-pde-plugin</artifactId>\r
        <version>0.3.1-SNAPSHOT</version>\r
        <packaging>maven-plugin</packaging>\r
                        <artifactId>maven-script-ant</artifactId>\r
                        <version>2.0.9</version>\r
                </dependency>\r
+               <dependency>\r
+                       <groupId>org.apache.maven</groupId>\r
+                       <artifactId>maven-project</artifactId>\r
+                       <version>2.0.7</version>\r
+               </dependency>\r
                <dependency>\r
                        <groupId>ant-contrib</groupId>\r
                        <artifactId>ant-contrib</artifactId>\r
diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetForkMojo.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetForkMojo.java
deleted file mode 100644 (file)
index 2edc8f6..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.argeo.slc.maven.plugins.pde;
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-
-/**
- * Forks a eclipseTarget lifecycle.
- * 
- * @goal eclipseTarget-fork
- * @execute lifecycle="eclipseTarget" phase="initialize"
- */
-public class EclipseTargetForkMojo extends AbstractMojo {
-       public void execute() throws MojoExecutionException {
-               getLog().info("doing nothing here");
-       }
-}
diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetMojo.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetMojo.java
new file mode 100644 (file)
index 0000000..eff4317
--- /dev/null
@@ -0,0 +1,16 @@
+package org.argeo.slc.maven.plugins.pde;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+
+/**
+ * Forks a eclipseTarget lifecycle.
+ * 
+ * @goal eclipseTarget
+ * @execute lifecycle="eclipseTarget" phase="initialize"
+ */
+public class EclipseTargetMojo extends AbstractMojo {
+       public void execute() throws MojoExecutionException {
+               getLog().info("EclipseTargetMojo done");
+       }
+}
diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/PackageElementMojo.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/PackageElementMojo.java
new file mode 100644 (file)
index 0000000..0505c2a
--- /dev/null
@@ -0,0 +1,38 @@
+package org.argeo.slc.maven.plugins.pde;
+
+import java.io.File;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Builds an element and adds it as main artifact.
+ * 
+ * @goal packageElement
+ * @phase package
+ * @execute goal="buildElement"
+ */
+public class PackageElementMojo extends AbstractMojo {
+       /**
+        * The Maven project.
+        * 
+        * @parameter expression="${project}"
+        * @required
+        * @readonly
+        */
+       private MavenProject project;
+
+       /**
+        * The directory for the generated JAR.
+        * 
+        * @parameter expression="${project.build.directory}"
+        * @required
+        */
+       private String buildDirectory;
+
+       public void execute() throws MojoExecutionException {
+               File file = new File(buildDirectory, project.getArtifactId() + ".zip");
+               project.getArtifact().setFile(file);
+       }
+}
index c3429e936c61c6668a69dac7d946ddef5f4aa645..9cc13514ad4b1385a30f37e2dbf46ddb68a22e91 100644 (file)
@@ -17,7 +17,7 @@
                                        </execution>
                                        <execution>
                                                <goals>
-                                                       <goal>eclipseTarget</goal>
+                                                       <goal>eclipseTarget-collect</goal>
                                                </goals>
                                        </execution>
                                </executions>
diff --git a/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml
new file mode 100644 (file)
index 0000000..7055dba
--- /dev/null
@@ -0,0 +1,48 @@
+<component-set>
+       <components>
+               <component>
+                       <role>org.apache.maven.lifecycle.mapping.LifecycleMapping
+                       </role>
+                       <role-hint>eclipseFeature</role-hint>
+                       <implementation>
+                               org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
+                       </implementation>
+                       <configuration>
+                               <lifecycles>
+                                       <lifecycle>
+                                               <id>default</id>
+                                               <phases>
+                                                       <initialize>
+                                                               org.argeo.slc.maven:maven-argeo-pde-plugin:eclipseTarget
+                                                       </initialize>
+                                                       <package>
+                                                               org.argeo.slc.maven:maven-argeo-pde-plugin:packageElement
+                                                       </package>
+                                                       <install>
+                                                               org.apache.maven.plugins:maven-install-plugin:install
+                                                       </install>
+                                                       <deploy>
+                                                               org.apache.maven.plugins:maven-deploy-plugin:deploy
+                                                       </deploy>
+                                               </phases>
+                                       </lifecycle>
+                               </lifecycles>
+                       </configuration>
+               </component>
+               <component>
+                       <role>org.apache.maven.artifact.handler.ArtifactHandler
+                       </role>
+                       <role-hint>eclipseFeature</role-hint>
+                       <implementation>
+                               org.apache.maven.artifact.handler.DefaultArtifactHandler
+                       </implementation>
+                       <configuration>
+                               <type>eclipseFeature</type>
+                               <includesDependencies>false</includesDependencies>
+                               <language>java</language>
+                               <extension>zip</extension>
+                               <addedToClasspath>false</addedToClasspath>
+                       </configuration>
+               </component>
+       </components>
+</component-set>
index c2fe0b17edc946d453925c19e161ec3d0d9542c3..4029f6360a5f2151995c1f8acca1808fbb348267 100644 (file)
@@ -87,7 +87,7 @@
                        <mergemapper to="${elementId}.zip" />
                </copy>
 
-               <!-- Update site -->
+               <!-- TODO Update site 
                <copy tofile="${project.build.directory}/site.xml" file="${siteTemplate}">
                        <filterset begintoken="$${" endtoken="}">
                                <filtersfile file="${buildDirectory}/finalFeaturesVersions.properties" />
                                <include name="site.xml" />
                        </fileset>
                </zip>
+               -->
        </target>
 
        <!-- 
                </copy>
        </target>
 
-       <!-- 
-               TARGET Clean
-       -->
-       <target name="clean" depends="init,clean.elementBuildScript" description="Cleans the generated resources">
-               <delete dir="${projectDirectory}/workspace" verbose="true" />
-               <delete file="${projectDirectory}/javaCompiler...args" verbose="true" />
-               <delete>
-                       <fileset dir="${projectDirectory}/../..">
-                               <include name="final*.properties" />
-                               <include name="assemble*.xml" />
-                               <include name="package*.xml" />
-                       </fileset>
-               </delete>
-       </target>
-
-       <target name="clean.elementBuildScript" if="elementBuildScript.exists">
-               <ant antfile="${elementBuildScript}" target="clean" />
-               <delete file="${elementBuildScript}" verbose="true" />
-       </target>
-
        <!--
-               TARGET eclipseTarget
+               TARGET eclipseTarget-collect
        -->
-       <target name="eclipseTarget" description="Creates an Eclipse target location based on the dependencies">
+       <target name="eclipseTarget-collect" description="Creates an Eclipse target location based on the dependencies">
                <taskdef resource="net/sf/antcontrib/antlib.xml" />
                <for param="dir">
                        <dirset dir="${project.build.directory}/dependency">
                                <include name="*" />
                        </dirset>
                        <sequential>
-                               <!--
-                               <move todir="@{dir}" failonerror="false">
-                                       <fileset dir="@{dir}/eclipse">
-                                               <include name="**" />
-                                       </fileset>
-                               </move>
-                               <delete dir="@{dir}/eclipse" failonerror="false" quiet="true" />
-                               -->
                                <copy todir="${eclipseTarget}" failonerror="false">
                                        <fileset dir="@{dir}">
                                                <include name="plugins/**" />
                COMMON UTILITIES 
        -->
        <target name="init">
-               <!-- Init Base 
-               <property name="base" location="${eclipseBuildDir}" />
-               <property name="baseLocation" location="${base}/eclipse" />
-               <property name="pdeBuilder" location="${eclipseBuildDir}/argeo-slc-pde" />
-               <property name="pluginPathBase" location="${eclipseBuildDir}/pluginPath" />
--->
                <path id="pdeBuilder.launcher.classpath">
                        <fileset dir="${pdeBuilder}/plugins">
                                <include name="org.eclipse.equinox.launcher_*.jar" />
                <echo message="ant.file=${ant.file}" />
                <echo message="projectDirectory=${projectDirectory}" />
 
-               <!--<echo message="eclipseBuildDir=${eclipseBuildDir}" />
-               <echo message="base=${base}" />
-               <echo message="baseLocation=${baseLocation}" />
-               <echo message="pdeBuilder=${pdeBuilder}" />
-               <echo message="localBuildDir=${localBuildDir}" />
-               <echo message="pluginPathBase=${pluginPathBase}" />
--->
                <echo message="pdeBuilder=${pdeBuilder}" />
                <echo message="eclipseTarget=${eclipseTarget}" />
 
                <echo message="eclipseAntArgs=${eclipseAntArgs}" />
 
                <echo message="buildConfiguration.dir=${buildConfiguration.dir}" />
-
-               <available file="${elementBuildScript}" property="elementBuildScript.exists" value="true" />
        </target>
        <!--
        <target name="setPluginPath">
index 39e92bfe3f4ee551706b0657a718324ea9393eff..b10aaacff204f9c1e36dc6a3b4e1f62c4879e875 100644 (file)
                </mojo>
 
                <mojo>
-                       <goal>eclipseTarget</goal>
-                       <call>eclipseTarget</call>
+                       <goal>eclipseTarget-collect</goal>
+                       <call>eclipseTarget-collect</call>
                        <description>
                                Installs an Eclipse target based on dependencies
                        </description>