Hi, I think that is good to split the: eclipse:generate-project in two
goals:
eclipse:generate-project and eclipse:generate-classpath because there
are some projects that requires some build natures (like EJB projects in
WASAD) and I like to keep the .project while leting Maven create the
classpath.
Regards,
Diego.-
PD:
1. Sorry about my bad use of english
2. What is the correct way to post patches?
Here is my plugin.jelly file:
----------------------------------------------------------------
<?xml version="1.0"?>
<project
xmlns:j="jelly:core"
xmlns:ant="jelly:ant"
xmlns:test="test">
<test:eclipse/>
<!--==================================================================--
>
<!-- Generate Eclipse .project and .classpath files
-->
<!--==================================================================--
>
<goal name="eclipse"
description="Generate Eclipse project files"
prereqs="eclipse:generate-project, eclipse:generate-classpath"/>
<goal name="eclipse:generate-project"
description="Generate Eclipse .project file">
<ant:echo>Creating ${basedir}/.project ...</ant:echo>
<j:file name="${basedir}/.project" prettyPrint="true" xmlns="dummy">
<projectDescription>
<name>${pom.artifactId}</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
</j:file>
<ant:echo>Now refresh your project in Eclipse (right click on the
project and select "Refresh")</ant:echo>
</goal>
<goal name="eclipse:generate-classpath"
description="Generate Eclipse .classpath project file">
<j:set var="outputDir" value="${maven.eclipse.output.dir}"/>
<j:if test="${empty outputDir}">
<j:set var="outputDir" value="target\classes"/>
</j:if>
<ant:echo>Creating ${basedir}/.classpath ...</ant:echo>
<j:file name="${basedir}/.classpath" prettyPrint="true"
xmlns="dummy">
<classpath>
<j:if test="${sourcesPresent}">
<classpathentry kind="src" path="${pom.build.sourceDirectory}"/>
</j:if>
<j:if test="${unitTestSourcesPresent}">
<classpathentry kind="src"
path="${pom.build.unitTestSourceDirectory}"/>
<!-- Here are the rules:
If the project has maven.eclipse.junit property, add that
ver of junit
If the project has maven.eclipse.junit property and it is
empty, don't add junit
If the project has junit dep, use that.
Use the test plugin version
-->
<j:set var="verX" value="${maven.eclipse.junit}X"/>
<j:set
var="depVersion">${pom.getPluginContext('maven-test-plugin').getVariable
('plugin').getDependency('junit').getVersion()}</j:set>
<j:if test="${pom.getDependency('junit') != null}">
<j:set var="depVersion"
value="${pom.getDependency('junit').getVersion()}"/>
</j:if>
<j:if test="${verX != 'X'}">
<j:set var="depVersion">${maven.eclipse.junit}</j:set>
</j:if>
<j:if test="${verX == 'noneX'}">
<j:set var="depVersion" value="none"/>
</j:if>
<j:if test="${depVersion != 'none'}">
<classpathentry kind="var"
path="MAVEN_REPO/junit/jars/junit-${depVersion}.jar"/>
</j:if>
</j:if>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT"
sourcepath="JRE_SRC"/>
<j:forEach var="lib" items="${pom.artifacts}">
<j:choose>
<j:when
test="${lib.dependency.getProperty('eclipse.project')=='true'}">
<classpathentry kind="src"
path="/${lib.dependency.artifactId}" />
</j:when>
<j:otherwise>
<classpathentry kind="var"
path="MAVEN_REPO${lib.urlPath}"/>
</j:otherwise>
</j:choose>
</j:forEach>
<classpathentry kind="output" path="${outputDir}"/>
</classpath>
</j:file>
<ant:echo>Now refresh your project in Eclipse (right click on the
project and select "Refresh")</ant:echo>
</goal>
<!--==================================================================--
>
<!-- Generate Eclipse mappings for Maven goals
-->
<!--==================================================================--
>
<goal name="eclipse:external-tools"
description="Generate an Eclipse external tool for each
goal">
<ant:mkdir dir="${maven.build.dir}/eclipse/"/>
<j:set var="toolFile"
value="${maven.build.dir}/eclipse/externaltools.xml" />
<ant:echo>Creating ${toolFile}</ant:echo>
<j:set var="os" value="${os.name}" />
<j:set var="windows" value="${os.toLowerCase().indexOf('windows') !=
'-1'}"/>
<ant:echo>Adapting the generated file for a ${os} box.</ant:echo>
<!-- Strangely, j:file inserts a space between ${maven.home} and
/bin/maven ... -->
<j:set var="tool.loc"
value="${maven.home}${file.separator}bin${file.separator}maven"/>
<j:if test="${windows}">
<j:set var="tool.loc" value="${tool.loc}.bat"/>
</j:if>
<j:file name="${toolFile}" prettyPrint="true" xmlns="dummy">
<externaltools>
<j:set var="project"
value="${org.apache.commons.jelly.werkz.Project}"/>
<j:forEach var="goal" items="${project.goals}">
<j:set var="maven.eclipse.generate" value="false"/>
<j:set var="allGoals" value="${maven.eclipse.goals}" />
<j:choose>
<j:when test="${allGoals == 'all'}">
<j:set var="maven.eclipse.generate" value="true"/>
</j:when>
<j:otherwise>
<j:if test="${goal.name.indexOf(':') == '-1'}">
<j:set var="maven.eclipse.generate" value="true"/>
</j:if>
</j:otherwise>
</j:choose>
<j:if test="${maven.eclipse.generate}">
<tool>
<entry key="!{tool_refresh}">$${project}</entry>
<entry key="!{tool_show_log}">true</entry>
<entry key="!{tool_loc}">${tool.loc}</entry>
<entry key="!{tool_args}">-e -p $${resource_loc}
${goal.name}</entry>
<entry key="!{tool_block}">false</entry>
<entry
key="!{tool_type}">org.eclipse.ui.externaltools.type.program</entry>
<entry key="!{tool_dir}">$${container_loc}</entry>
<entry key="!{tool_build_types}"></entry>
<entry key="!{tool_name}">Maven ${goal.name}</entry>
</tool>
</j:if>
</j:forEach>
</externaltools>
</j:file>
<j:set var="ws" value="${maven.eclipse.workspace}X" />
<j:if test='${ws != "X"}'>
<j:set var="toDir"
value="${maven.eclipse.workspace}/.metadata/.plugins/org.eclipse.ui.exte
rnaltools/" />
<ant:copy file="${toolFile}" todir="${toDir}"/>
</j:if>
<j:if test='${ws == "X"}'>
<ant:echo>
Please set maven.eclipse.workspace to the location of your eclipse
workspace.
Alternatively, copy
${maven.build.dir}/eclipse/externaltools.xml
to
[maven.eclipse.workspace]/.metadata/.plugins/org.eclipse.ui.externaltool
s/externaltools.xml
</ant:echo>
</j:if>
</goal>
<!--==================================================================--
>
<!-- Add MAVEN_REPO to classpath variables
-->
<!--==================================================================--
>
<goal name="eclipse:add-maven-repo"
description="Ensure that the classpath variable MAVEN_REPO is
available">
<j:set var="ws" value="${maven.eclipse.workspace}X" />
<j:choose>
<j:when test='${ws != "X"}'>
<j:set var="variableFile"
value="${maven.eclipse.workspace}/.metadata/.plugins/org.eclipse.jdt.cor
e/pref_store.ini" />
<ant:propertyfile file="${variableFile}">
<ant:entry
key="org.eclipse.jdt.core.classpathVariable.MAVEN_REPO"
default="${maven.repo.local}" />
</ant:propertyfile>
</j:when>
<j:otherwise>The property $${maven.eclipse.workspace} was not set.
MAVEN_REPO may not be set.</j:otherwise>
</j:choose>
</goal>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]