Hi james,
thanks, this stuff now works in the one file, I had the same results last night
with two files. Unfortunately, the std maven properties all seem to be null
when dealing with defines. I guess this is why javac barfs. I've attached my
plugin.jelly - contains a load of debug.
James Strachan wrote:
> 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]>
>
<?xml version="1.0"?>
<project
xmlns:j="jelly:core"
xmlns:maven="jelly:org.apache.maven.jelly.tags.project.MavenTagLibrary"
xmlns:define="jelly:define"
xmlns:jwsLib="jwsLib">
<define:taglib uri="jwsLib">
<define:tag name="makeJar">
<attainGoal name="java:prepare-filesystem"/>
<echo message="compiling ${includes}"/>
<echo message="destdir= ${maven.build.dest}"/>
<echo message="debug=${maven.compile.debug}"/>
<echo message="optimize=${maven.compile.optimize}"/>
<property name="depcp" refid="maven.dependency.classpath"/>
<echo message="depcp ${depcp}"/>
<echo message="maven.build.dest ${maven.build.dest}"/>
<javac
destdir="${maven.build.dest}"
includes="${includes}"
debug="${maven.compile.debug}"
deprecation="${maven.compile.deprecation}"
optimize="${maven.compile.optimize}">
<classpath>
<path refid="maven.dependency.classpath"/>
<pathelement path="${maven.build.dest}"/>
</classpath>
</javac>
<!--jar
jarfile="${jarfile}"
basedir="${maven.build.dest}"
</jar-->
</define:tag>
</define:taglib>
<goal name="jws:compile"
description="Compile the project">
<attainGoal name="java:prepare-filesystem"/>
<property name="depcp" refid="maven.dependency.classpath"/>
<echo message="depcp ${depcp}"/>
<jwsLib:makeJar includes="**/commmon/*.java"
jarfile="${maven.build.dest}/foo.jar"/>
<jwsLib:makeJar includes="**/registry/*.java"
jarfile="${maven.build.dest}/xyz.jar"/>
<jwsLib:makeJar includes="**/server/*.java"
jarfile="${maven.build.dest}/bing.jar"/>
<echo message="Running xrpcc for the server:"/>
<exec executable="${xrpcc}">
<arg line="-classpath ${maven.build.dest}/service-class" />
<arg line="-server" />
<arg line="-d ${build}/server" />
<arg line="${src}/config.xml" />
</exec>
</goal>
</project>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>