Use local target dir
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Dec 2008 20:39:34 +0000 (20:39 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Dec 2008 20:39:34 +0000 (20:39 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk/maven@1885 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

plugins/maven-argeo-pde-plugin/.classpath [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/.project
plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/.settings/org.maven.ide.eclipse.prefs [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/pom.xml
plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/EclipseTargetForkMojo.java [new file with mode: 0644]
plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.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

diff --git a/plugins/maven-argeo-pde-plugin/.classpath b/plugins/maven-argeo-pde-plugin/.classpath
new file mode 100644 (file)
index 0000000..03ebd9b
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+       <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
index 7cafba57b6e2c6622d8d8d745513bce39e11d410..8ca530d04a5508d2db4309f2f33d9d81dd0e36ba 100644 (file)
@@ -5,7 +5,19 @@
        <projects>
        </projects>
        <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.maven.ide.eclipse.maven2Builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
        </buildSpec>
        <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>org.maven.ide.eclipse.maven2Nature</nature>
        </natures>
 </projectDescription>
diff --git a/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs b/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..63f4cf1
--- /dev/null
@@ -0,0 +1,5 @@
+#Fri Dec 05 10:50:53 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/maven-argeo-pde-plugin/.settings/org.maven.ide.eclipse.prefs b/plugins/maven-argeo-pde-plugin/.settings/org.maven.ide.eclipse.prefs
new file mode 100644 (file)
index 0000000..00c3a19
--- /dev/null
@@ -0,0 +1,8 @@
+#Fri Dec 05 10:50:52 CET 2008
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+version=1
index d2292466ac024add065c3564d1c94ef9ec200d6d..83117ef809df9c5d9eb0c7102607792542eacd89 100644 (file)
@@ -1,17 +1,34 @@
 <project>\r
        <modelVersion>4.0.0</modelVersion>\r
-       <groupId>org.argeo.slc.maven.plugins</groupId>\r
+       <groupId>org.argeo.slc.maven.plugins\r
+       </groupId>\r
        <artifactId>maven-argeo-pde-plugin</artifactId>\r
-       <version>0.1.2</version>\r
+       <version>0.3.1-SNAPSHOT</version>\r
        <packaging>maven-plugin</packaging>\r
        <name>Argeo PDE Plugin</name>\r
 \r
        <dependencies>\r
+               <dependency>\r
+                       <groupId>org.apache.maven</groupId>\r
+                       <artifactId>maven-plugin-api</artifactId>\r
+                       <version>2.0</version>\r
+               </dependency>\r
                <dependency>\r
                        <groupId>org.apache.maven</groupId>\r
                        <artifactId>maven-script-ant</artifactId>\r
                        <version>2.0.9</version>\r
                </dependency>\r
+               <dependency>\r
+                       <groupId>ant-contrib</groupId>\r
+                       <artifactId>ant-contrib</artifactId>\r
+                       <version>1.0b2</version>\r
+                       <exclusions>\r
+                               <exclusion>\r
+                                       <groupId>ant</groupId>\r
+                                       <artifactId>ant</artifactId>\r
+                               </exclusion>\r
+                       </exclusions>\r
+               </dependency>\r
        </dependencies>\r
 \r
        <build>\r
@@ -21,7 +38,8 @@
                                <dependencies>\r
                                        <dependency>\r
                                                <groupId>org.apache.maven</groupId>\r
-                                               <artifactId>maven-plugin-tools-ant</artifactId>\r
+                                               <artifactId>maven-plugin-tools-ant\r
+                                               </artifactId>\r
                                                <version>2.1</version>\r
                                        </dependency>\r
                                </dependencies>\r
                        </plugin>\r
                </plugins>\r
        </build>\r
-\r
        <distributionManagement>\r
                <repository>\r
                        <uniqueVersion>false</uniqueVersion>\r
                        <id>argeo-restricted</id>\r
                        <name>Argeo FOSS Repository</name>\r
-                       <url>file:///var/argeo/maven2/argeo</url>\r
+                       <url>file:///var/argeo/maven2/argeo\r
+                       </url>\r
                </repository>\r
                <snapshotRepository>\r
                        <uniqueVersion>true</uniqueVersion>\r
                        <id>argeo-snapshots-restricted</id>\r
                        <name>Argeo FOSS Snapshots Repository</name>\r
-                       <url>file:///var/argeo/maven2/argeo-snapshots</url>\r
+                       <url>file:///var/argeo/maven2/argeo-snapshots\r
+                       </url>\r
                </snapshotRepository>\r
        </distributionManagement>\r
 </project>
\ No newline at end of file
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
new file mode 100644 (file)
index 0000000..2edc8f6
--- /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-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/resources/META-INF/maven/lifecycle.xml b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml
new file mode 100644 (file)
index 0000000..c3429e9
--- /dev/null
@@ -0,0 +1,27 @@
+<lifecycles>
+       <lifecycle>
+               <id>eclipseTarget</id>
+               <phases>
+                       <phase>
+                               <id>initialize</id>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       <goal>org.apache.maven.plugins:maven-dependency-plugin:unpack-dependencies</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <useSubDirectoryPerArtifact>
+                                                               true
+                            </useSubDirectoryPerArtifact>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
+                                               <goals>
+                                                       <goal>eclipseTarget</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </phase>
+               </phases>
+       </lifecycle>
+</lifecycles>
index ef44ee4f52db043971d088cb0ea19ab3823881bb..c2fe0b17edc946d453925c19e161ec3d0d9542c3 100644 (file)
@@ -1,55 +1,84 @@
 <project>
-       <!-- Defaults -->
+       <!-- 
+               Defaults 
+       -->
+
+       <!-- Maven project basedir -->
        <property name="projectDirectory" location="${basedir}" />
-       <property name="project.build.directory"
-                 location="${projectDirectory}/target" />
-       <property name="dependencyDir"
-                 location="${project.build.directory}/dependency" />
+       <!-- Maven build dir -->
+       <property name="project.build.directory" location="${projectDirectory}/target" />
+       <!-- Maven dependency plugin dir -->
+       <property name="dependencyDir" location="${project.build.directory}/dependency" />
+       <!-- Arguments passed to Eclipse ant -->
        <property name="eclipseAntArgs" value="" />
-
-       <!-- Element build properties-->
-       <property name="elementBuildScript"
-                 location="${projectDirectory}/build.xml" />
-       <property name="buildTempFolder"
-                 location="${project.build.directory}/argeo-pde-temp" />
+       <!-- Additional arguments passed to Eclipse build script -->
        <property name="buildScriptProperties" value="" />
 
-       <available file="${projectDirectory}/plugin.xml"
-                  property="elementType"
-                  value="plugin" />
-       <available file="${projectDirectory}/feature.xml"
-                  property="elementType"
-                  value="feature" />
+       <!-- 
+               Argeo PDE folders
+       -->
+       <!-- Argeo PDE plugin dir -->
+       <property name="argeo-pde.dir" location="${project.build.directory}/argeo-pde" />
+       <!-- Temporary folder used by Eclipse build -->
+       <property name="buildTempFolder" location="${argeo-pde.dir}/temp" />
+       <!-- Eclipse Builder -->
+       <!--<property name="pdeBuilder" location="${argeo-pde.dir}/pdeBuilder" />-->
+
+       <!-- Eclipse Target -->
+       <property name="eclipseTarget" location="${argeo-pde.dir}/eclipseTarget" />
+       <property name="pdeBuilder" location="${eclipseTarget}" />
+
+       <!-- TODO: remove this since we build only features? -->
+       <available file="${projectDirectory}/plugin.xml" property="elementType" value="plugin" />
+       <available file="${projectDirectory}/feature.xml" property="elementType" value="feature" />
+
+       <!-- Destination dirs -->
+       <property name="argeo-pde.destinationDir" location="${argeo-pde.dir}/destination" />
+       <property name="pluginDestination" location="${argeo-pde.destinationDir}/plugins" />
+       <property name="featureDestination" location="${argeo-pde.destinationDir}/features" />
+
+       <!-- Source dirs -->
+       <property name="argeo-pde.sourceDir" location="${argeo-pde.dir}/source" />
+       <property name="buildDirectory" location="${argeo-pde.sourceDir}" />
 
-       <property name="pluginDestination"
-                 location="${project.build.directory}/plugins" />
-       <property name="featureDestination"
-                 location="${project.build.directory}/features" />
 
-       <property name="siteTemplate"
-                 location="${projectDirectory}/site.template" />
+       <!-- TODO: make it more generic. Site file template -->
+       <property name="siteTemplate" location="${projectDirectory}/site.template" />
 
-       <!-- Product build properties -->
+       <!-- TODO: put it under argeo-pde. Product build properties -->
        <property name="buildConfiguration" value="buildConfiguration" />
-       <property name="buildConfiguration.dir"
-                 location="${projectDirectory}/${buildConfiguration}" />
+       <property name="buildConfiguration.dir" location="${projectDirectory}/${buildConfiguration}" />
 
-       <!-- TARGET Build Element -->
-       <target name="buildElement"
-               depends="init,setPluginPath"
-               description="Builds an element (plugin or feature)">
-               <fail message="Property buildScriptTargets has to be set"
-                     unless="buildScriptTargets" />
+
+
+       <!-- 
+               Element build properties
+       -->
+
+       <!-- 
+               TARGET Build Element 
+       -->
+       <target name="buildElement" depends="init" description="Builds an element (plugin or feature)">
+               <fail message="Property buildScriptTargets has to be set" unless="buildScriptTargets" />
 
                <mkdir dir="${pluginDestination}" />
                <mkdir dir="${featureDestination}" />
 
-               <property name="buildDirectory" location="${projectDirectory}/../.." />
+               <!-- Copy to source -->
+               <property name="sourceBaseDir" location="${projectDirectory}/../.." />
+               <copy todir="${argeo-pde.sourceDir}">
+                       <fileset dir="${sourceBaseDir}">
+                               <include name="plugins/**" />
+                               <include name="features/**" />
+                               <exclude name="**/target/**" />
+                               <exclude name="**/.svn/**" />
+                       </fileset>
+               </copy>
 
-               <eclipseAnt antfile="${ant.file}"
-                           antargs="eclipse.generateScripts -DpluginPath=${pluginPath} -DprojectDirectory=${projectDirectory} -DeclipseBuildDir=${eclipseBuildDir} -DelementId=${elementId} -DbuildDirectory=${buildDirectory}" />
-               <eclipseAnt antfile="${elementBuildScript}"
-                           antargs="${buildScriptTargets} -Dplugin.destination=${pluginDestination} -Dfeature.destination=${featureDestination}  -DelementId=${elementId} -DbuildTempFolder=${buildTempFolder} -Dtemp.folder=${buildTempFolder}/temp.folder -Dfeature.temp.folder=${buildTempFolder}/feature.temp.folder ${buildScriptProperties}" />
+               <property name="elementBuildScript" location="${buildDirectory}/${elementType}s/${elementId}/build.xml" />
+
+               <eclipseAnt antfile="${ant.file}" antargs="eclipse.generateScripts -DpdeBuilder=${pdeBuilder} -DpluginPath=${dependencyDir} -DprojectDirectory=${projectDirectory} -DeclipseBuildDir=${eclipseBuildDir} -DelementId=${elementId} -DbuildDirectory=${buildDirectory}" />
+               <eclipseAnt antfile="${elementBuildScript}" antargs="${buildScriptTargets} -Dplugin.destination=${pluginDestination} -Dfeature.destination=${featureDestination}  -DelementId=${elementId} -DbuildTempFolder=${buildTempFolder} -Dtemp.folder=${buildTempFolder}/temp.folder -Dfeature.temp.folder=${buildTempFolder}/feature.temp.folder ${buildScriptProperties}" />
 
                <copy todir="${project.build.directory}">
                        <fileset dir="${featureDestination}">
@@ -59,8 +88,7 @@
                </copy>
 
                <!-- Update site -->
-               <copy tofile="${project.build.directory}/site.xml"
-                     file="${siteTemplate}">
+               <copy tofile="${project.build.directory}/site.xml" file="${siteTemplate}">
                        <filterset begintoken="$${" endtoken="}">
                                <filtersfile file="${buildDirectory}/finalFeaturesVersions.properties" />
                        </filterset>
                </zip>
        </target>
 
-       <!-- TARGET Build Product -->
-       <target name="buildProduct"
-               depends="init,setPluginPath"
-               description="Builds a product">
+       <!-- 
+               TARGET Build Product 
+       -->
+       <target name="buildProduct" depends="init" description="Builds a product">
                <!-- Load provided build.properties to leave a chance to override -->
                <property file="${buildConfiguration.dir}/build.properties" />
                <!-- Set default properties -->
                <echo message="productBuildFile=${productBuildFile}" />
 
                <!-- Copy sources -->
-               <property name="buildDirectory"
-                         location="${project.build.directory}/productBuild" />
+               <property name="buildDirectory" location="${project.build.directory}/productBuild" />
                <mkdir dir="${buildDirectory}" />
                <copy todir="${buildDirectory}" includeemptydirs="true" verbose="true">
                        <fileset dir="${projectDirectory}/../..">
                </copy>
 
                <!-- Execute -->
-               <eclipseAnt antfile="${productBuildFile}"
-                           antargs="-Dbuilder=${buildConfiguration.dir} -DbuildDirectory=${buildDirectory} -DbaseLocation=${baseLocation} -Dbase=${base} -DpluginPath=${pluginPath} -DarchivePrefix=${archivePrefix} -DbuildLabel=${buildLabel} -DbuildId=${buildId} -DcollectingFolder=${collectingFolder} -DskipFetch=${skipFetch} -DskipMaps=${skipMaps} -DrunPackager=${runPackager}" />
+               <eclipseAnt antfile="${productBuildFile}" antargs="-Dbuilder=${buildConfiguration.dir} -DbuildDirectory=${buildDirectory} -DbaseLocation=${eclipseTarget} -Dbase=${base} -DpluginPath=${dependencyDir} -DarchivePrefix=${archivePrefix} -DbuildLabel=${buildLabel} -DbuildId=${buildId} -DcollectingFolder=${collectingFolder} -DskipFetch=${skipFetch} -DskipMaps=${skipMaps} -DrunPackager=${runPackager}" />
 
                <!-- Copy to target dir -->
                <copy todir="${project.build.directory}">
                </copy>
        </target>
 
-       <!-- TARGET Clean -->
-       <target name="clean"
-               depends="init,clean.elementBuildScript"
-               description="Cleans the generated resources">
+       <!-- 
+               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>
                <delete file="${elementBuildScript}" verbose="true" />
        </target>
 
-       <!-- COMMON UTILITIES -->
+       <!--
+               TARGET eclipseTarget
+       -->
+       <target name="eclipseTarget" 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/**" />
+                                               <include name="features/**" />
+                                       </fileset>
+                               </copy>
+                               <copy todir="${eclipseTarget}" failonerror="false">
+                                       <fileset dir="@{dir}/eclipse">
+                                               <include name="plugins/**" />
+                                               <include name="features/**" />
+                                       </fileset>
+                               </copy>
+                       </sequential>
+               </for>
+
+               <!-- Copy configuration from SDK -->
+               <for param="dir">
+                       <dirset dir="${project.build.directory}/dependency">
+                               <include name="eclipse-sdk-*" />
+                       </dirset>
+                       <sequential>
+                               <copy todir="${eclipseTarget}" failonerror="false">
+                                       <fileset dir="@{dir}/eclipse">
+                                               <include name="configuration/**" />
+                                       </fileset>
+                               </copy>
+                       </sequential>
+               </for>
+       </target>
+
+       <!-- 
+               COMMON UTILITIES 
+       -->
        <target name="init">
-               <!-- Init Base -->
+               <!-- 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" />
-
+               <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="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="elementType=${elementType}" />
                <echo message="elementId=${elementId}" />
 
                <echo message="buildConfiguration.dir=${buildConfiguration.dir}" />
 
-               <available file="${elementBuildScript}"
-                          property="elementBuildScript.exists"
-                          value="true" />
+               <available file="${elementBuildScript}" property="elementBuildScript.exists" value="true" />
        </target>
-
+       <!--
        <target name="setPluginPath">
                <mkdir dir="${dependencyDir}" />
                <pathconvert property="pluginPath">
                </pathconvert>
                <echo message="pluginPath=${pluginPath}" />
        </target>
-
+-->
        <!-- TARGETS TO BE CALLED WITH ANT ECLIPSE -->
        <target name="eclipse.generateScripts" depends="init">
-               <fail message="Property elementType has to be set"
-                     unless="elementType" />
-               <eclipse.buildScript elements="${elementType}@${elementId}"
-                                    buildDirectory="${buildDirectory}"
-                                    baseLocation="${baseLocation}"
-                                    outputUpdateJars="true"
-                                    generateVersionsLists="true"
-                                    pluginPath="${pluginPath}" />
+               <fail message="Property elementType has to be set" unless="elementType" />
+               <eclipse.buildScript elements="${elementType}@${elementId}" buildDirectory="${buildDirectory}" baseLocation="${eclipseTarget}" outputUpdateJars="true" generateVersionsLists="true" pluginPath="${dependencyDir}" />
        </target>
 
        <!-- MACRODEFS -->
                <attribute name="antargs" />
                <sequential>
                        <echo message="Call Eclipse Ant for file @{antfile} with args ${eclipseAntArgs} @{antargs}" />
-                       <java fork="true"
-                             classname="org.eclipse.core.launcher.Main"
-                             failonerror="true">
+                       <java fork="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
                                <classpath refid="pdeBuilder.launcher.classpath" />
-                               <arg line="-data ${project.build.directory}/workspace" />
+                               <arg line="-data ${argeo-pde.dir}/workspace" />
                                <arg line="-application org.eclipse.ant.core.antRunner" />
                                <arg line="-buildfile @{antfile}" />
                                <arg line="${eclipseAntArgs}" />
index 3eb0ad1ed9008797381881b1affa56d4f5a6e656..39e92bfe3f4ee551706b0657a718324ea9393eff 100644 (file)
@@ -11,6 +11,7 @@
 
                        <parameters>
                                <!-- Common -->
+                               <!--  
                                <parameter>
                                        <name>eclipseBuildDir</name>
                                        <property>eclipseBuildDir</property>
@@ -21,6 +22,7 @@
                                                The Eclipse build dir location
                                        </description>
                                </parameter>
+                               -->
                                <parameter>
                                        <name>eclipseAntArgs</name>
                                        <property>eclipseAntArgs</property>
                                        <name>elementId</name>
                                        <property>elementId</property>
                                        <required>true</required>
-                                       <defaultValue>${project.artifactId}</defaultValue>
+                                       <defaultValue>${project.artifactId}
+                                       </defaultValue>
                                        <type>java.lang.String</type>
                                        <description>
                                                The artifact id of the project by default, will
-                                               be used as element id.
+                                               be used
+                                               as element id.
                                        </description>
                                </parameter>
                                <!-- Specific -->
@@ -62,7 +66,8 @@
                                        <name>buildScriptProperties</name>
                                        <property>buildScriptProperties</property>
                                        <required>true</required>
-                                       <expression>${buildScriptProperties}</expression>
+                                       <expression>${buildScriptProperties}
+                                       </expression>
                                        <defaultValue></defaultValue>
                                        <type>java.lang.String</type>
                                        <description>
                                        <name>elementId</name>
                                        <property>elementId</property>
                                        <required>true</required>
-                                       <defaultValue>${project.artifactId}</defaultValue>
+                                       <defaultValue>${project.artifactId}
+                                       </defaultValue>
                                        <type>java.lang.String</type>
                                        <description>
                                                The artifact id of the project by default, will
-                                               be used as element id.
+                                               be used
+                                               as element id.
                                        </description>
                                </parameter>
                                <!-- Specific -->
                                        <property>elementId</property>
                                        <required>true</required>
                                        <readonly>true</readonly>
-                                       <defaultValue>${project.artifactId}</defaultValue>
+                                       <defaultValue>${project.artifactId}
+                                       </defaultValue>
                                        <type>java.lang.String</type>
                                        <description>
                                                The artifact id of the project by default, will
-                                               be used as element id.
+                                               be used
+                                               as element id.
                                        </description>
                                </parameter>
                        </parameters>
                </mojo>
+
+               <mojo>
+                       <goal>eclipseTarget</goal>
+                       <call>eclipseTarget</call>
+                       <description>
+                               Installs an Eclipse target based on dependencies
+                       </description>
+                       <requiresProject>true</requiresProject>
+               </mojo>
        </mojos>
 </pluginMetadata>
\ No newline at end of file