I am writing a plugin for generating JAXB 1.6 sources . The plugin is written in ant. How do I access the compile classpath in the plugin.
My plugin code: <project> <!--<property name="repo.home" value="C:/Documents and Settings/user/.m2/repository"/>--> <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> <!- NEED TO SET CLASSPATH HERE SO THAT XJC task can be accessed --> </taskdef> <target name="hello"> <mkdir dir="${targetDirectory}/generated-sources/java/jaxb1.6Plugin"/> <echo>XSD File Name ${xsdFileName}</echo> <echo>Dir to write generated source to "${targetDirectory}/generated-sources/java/jaxb1.6Plugin</echo> <echo>Package name ${packageName}</echo> <xjc schema="${xsdFileName}" removeOldOutput="yes" target="${targetDirectory}/generated-sources/java/jaxb1.6Plugin" package="${packageName}"/> </target> </project> Plugin Metadata: <pluginMetadata> <mojos> <mojo> <goal>hello</goal> <!-- this element refers to the Ant target we'll invoke --> <call>hello</call> <requiresProject>true</requiresProject> <description> Compile the XSD using jaxb 1.6 </description> <parameters> <parameter> <name>xsdFileName</name> <property>xsdFileName</property> <required>true</required> <expression>${xsdFileName}</expression> <type>java.lang.String</type> <description>XSD to be compiled</description> </parameter> <parameter> <name>targetDirectory</name> <property>targetDirectory</property> <required>true</required> <expression>${project.build.directory}</expression> <type>java.lang.String</type> <description>Name of the directory to generate sources </description> </parameter> <parameter> <name>packageName</name> <property>packageName</property> <required>true</required> <expression>${packageName}</expression> <type>java.lang.String</type> <description>Package of the generated sources</description> </parameter> <parameter> <name>repolocal</name> <property>repolocal</property> <required>true</required> <expression>${localRepository}</expression> <type>java.lang.String</type> <description>Local repo</description> </parameter> </parameters> </mojo> </mojos> </pluginMetadata> Project POM <project> <modelVersion>4.0.0</modelVersion> <groupId>org.myproject.plugins</groupId> <artifactId>hello-plugin</artifactId> <version>1.0-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Hello Plugin</name> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-script-ant</artifactId> <version>2.0.5</version> </dependency> </dependencies> <build> <plugins> <plugin> <!-- NOTE: We don't need groupId if the plugin's groupId is org.apache.maven.plugins OR org.codehaus.mojo. We also don't have to specify a version, since Maven can automatically resolve the newest one. --> <artifactId>maven-plugin-plugin</artifactId> <!-- Add the Ant plugin tools --> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-tools-ant</artifactId> <version>2.0.1</version> </dependency> <!-- JAXB --> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>jaxb-api</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>jaxb-impl</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>jaxb-libs</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>relaxngDatatype</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>xsdlib</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>jaxb-xjc</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jwsdp.jaxb</groupId> <artifactId>jsr173_api</artifactId> <version>1.6</version> </dependency> </dependencies> <!-- Tell the plugin-plugin which prefix we will use. Later, we'll configure Maven to allow us to invoke this plugin using the "prefix:mojo" shorthand. --> <configuration> <goalPrefix>hello</goalPrefix> </configuration> </plugin> </plugins> </build> </project> Thanks, Rahul