Hi Nathan
I really should test pseudo code before I just write it in emails ;-). I've
attached a nearly-working example that is much closer; I added it to the end
of the Jelly maven.xml file. (So its right at the end).
It actually evaluates the tag correctly, though for some reason the javac
task barfs, I'm not too sure why. The main trick to get what you had working
was that the <makeJar> tag needs to be in a namespace that matches the new
taglib ('myLib' in the example I sent). So in the attached maven.xml you'll
see I use <my:makeJar/>
I think for Maven it'd make sense to have a simpler
<tagdef name="foo">
<javac>
...
</tagdef>
Then later on to invoke it...
<foo x="123" y="${pom.foo.bar()}"/>
Then it'd be much cleaner & easier to use in maven.xml, and would mirror
more closely the old <taskdef> mechanism in Ant. I'll try make time today to
try hack this together...
James
----- Original Message -----
From: "Nathan Coast" <[EMAIL PROTECTED]>
To: "Turbine Maven Developers List" <[EMAIL PROTECTED]>
Sent: Tuesday, July 09, 2002 6:38 PM
Subject: Re: multiple goal invocations
> OK, I gave this a go but I'm not sure what I'm doing wrong (defined tag
not
> being executed). btw if you hadn't guessed I'm no xml expert :)
>
> cheers Nathan
>
> <project
> xmlns:j="jelly:core"
> xmlns:maven="jelly:org.apache.maven.jelly.tags.project.MavenTagLibrary"
> xmlns:define="jelly:define">
>
> <!-- define a new tag -->
> <define:taglib uri="myLib">
> <define:tag name="makeJar">
> <echo message="compiling ${includes}"/>
> <javac
> destdir="${maven.build.dest}"
> includes="${includes}"
> excludes="${excludes}"
> debug="${maven.compile.debug}"
> deprecation="${maven.compile.deprecation}"
> optimize="${maven.compile.optimize}">
> <classpath>
> <path refid="maven.dependency.classpath"/>
> <pathelement path="${maven.build.dest}"/>
> </classpath>
> <!--jar
> jarfile="${jarfile}"
> basedir="${maven.build.dest}"
> </jar-->
> </javac>
> </define:tag>
> </define:taglib>
>
>
>
> <goal name="jws:compile"
> description="Compile the project">
>
> <attainGoal name="java:prepare-filesystem"/>
>
> <makeJar includes="**/commmon/*.java"
> jarfile="${maven.build.dest}/foo.jar"/>
>
> <makeJar includes="**/registry/*.java"
> jarfile="${maven.build.dest}/xyz.jar"/>
>
> <makeJar includes="**/server/*.java"
> jarfile="${maven.build.dest}/bing.jar"/>
>
> ...........
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
<project default="java:jar" xmlns:j="jelly:core" xmlns:define="jelly:define" xmlns:my="myLib">
<!-- runs the XML doclet -->
<goal name="xml-doclet" prereqs="java:compile">
<path id="doclet.classpath">
<pathelement path="${maven.build.dest}"/>
<path refid="maven.dependency.classpath"/>
</path>
<javadoc
sourcepath="src/java"
packagenames="org.apache.commons.jelly.tags.*"
doclet="org.apache.commons.jelly.util.XMLDoclet"
docletpathref="doclet.classpath">
</javadoc>
</goal>
<!-- runs the Tag doclet -->
<goal name="tag-doclet" prereqs="java:compile">
<path id="doclet.classpath">
<pathelement path="target/classes"/>
<pathelement path="${maven.build.dest}"/>
<path refid="maven.dependency.classpath"/>
</path>
<javadoc
sourcepath="src/java"
packagenames="org.apache.commons.jelly.tags.*"
doclet="org.apache.commons.jelly.util.TagXMLDoclet"
docletpathref="doclet.classpath">
</javadoc>
</goal>
<!-- creates the XML webpage from the tag XML information -->
<goal name="doc-tags" prereqs="tag-doclet"
description="Generates the tag documentation">
<mkdir dir="target/generated-xdocs"/>
<path id="test.classpath">
<pathelement path="${maven.build.dest}"/>
<pathelement path="target/classes"/>
<path refid="maven.dependency.classpath"/>
</path>
<taskdef
name="jelly"
classname="org.apache.commons.jelly.task.JellyTask">
<classpath refid="test.classpath"/>
</taskdef>
<!--
<j:file name="target/generated-xdocs/tags.xml">
<j:include uri="src/script/makeTagDoc.jelly"/>
</j:file>
-->
<jelly file="src/script/makeTagDoc.jelly" output="target/generated-xdocs/tags.xml"/>
</goal>
<!-- ensure that the tag documentation is generated as part of the site -->
<goal
name="deploy-site2" prereqs="doc-tags, deploy-site">
</goal>
<preGoal
name="site:generate">
<attainGoal name="doc-tags"/>
</preGoal>
<!-- experiment with some tag definitions -->
<!-- define a new tag -->
<define:taglib uri="myLib">
<define:tag name="makeJar">
<echo message="compiling ${includes}"/>
<javac
srcdir="src/java"
destdir="${maven.build.dest}"
includes="${includes}"
excludes="${excludes}"
debug="${maven.compile.debug}"
deprecation="${maven.compile.deprecation}"
optimize="${maven.compile.optimize}">
<classpath>
<path refid="maven.dependency.classpath"/>
<pathelement path="${maven.build.dest}"/>
</classpath>
<!--jar
jarfile="${jarfile}"
basedir="${maven.build.dest}"
</jar-->
</javac>
</define:tag>
</define:taglib>
<goal name="sample-goal"
description="sample goal...">
<attainGoal name="java:prepare-filesystem"/>
<my:makeJar
includes="**/*.java" excludes="" jarfile="${maven.build.dest}/jelly-ojb.jar"/>
</goal>
</project>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>