<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
+++ /dev/null
-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");
- }
-}
--- /dev/null
+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");
+ }
+}
--- /dev/null
+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);
+ }
+}
</execution>
<execution>
<goals>
- <goal>eclipseTarget</goal>
+ <goal>eclipseTarget-collect</goal>
</goals>
</execution>
</executions>
--- /dev/null
+<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>
<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">
</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>