Thanks Dan, that got me what I need. The missing link in my mind was using
maven.dependency.classpath to connect the plugin's deps to the <taskdef>. I
never even thought about that, but I guess that's what it's there for! :-)
Here is the final, working xml:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-tree</id>
<phase>initialize</phase>
<goals><goal>run</goal></goals>
<configuration>
<tasks>
<typedef
resource="org/apache/maven/artifact/ant/antlib.xml">
<classpath
refid="maven.dependency.classpath"/>
</typedef>
<delete dir="target"/>
<pom id="maven.project" file="pom.xml"/>
<dependencies filesetId="dependency.fileset">
<pom refid="maven.project"/>
</dependencies>
<mkdir dir="target/deps"/>
<copy todir="target/deps">
<fileset refid="dependency.fileset"/>
</copy>
</tasks>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-ant</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
</plugin>
Note there is no <classifier> on the dependency, and I did away with the
artifact: namespace entirely.
Paul
dan tran wrote:
>
> see if this helps
>
> http://www.nabble.com/M2-antrun-plugin-problem-tf1400135.html#a5892203
>
> -D
>
>
> On 10/25/06, pjungwir <[EMAIL PROTECTED]> wrote:
>>
>>
>> Hello,
>>
>> This is kind of a weird question. Suppose I'm writing a <tasks> block for
>> maven-antrun-plugin. Now suppose I want to use maven's ant-tasks there.
>> For
>> example (to borrow from another poster):
>>
>> <tasks>
>> <delete dir="target"/>
>> <artifact:pom id="maven.project"
>> file="pom.xml"/>
>> <artifact:dependencies
>> filesetId="dependency.fileset">
>> <pom refid="maven.project"/>
>> </artifact:dependencies>
>> <mkdir dir="target/deps"/>
>> <copy todir="target/deps">
>> <fileset refid="dependency.fileset"/>
>> </copy>
>> </tasks>
>>
>> I'm having trouble with two things. First, I need to include
>> maven-artifact-ant-2.0.4-dep.jar in ant's classpath. I tried adding this
>> to
>> the beginning of <tasks>:
>>
>> <typedef
>> resource="org/apache/maven/artifact/ant/antlib.xml"
>> uri="urn:maven-artifact-ant">
>> <classpath>
>> <pathelement
>> location="/home/pjungwir/maven-artifact-ant-2.0.4-dep.jar"/>
>> </classpath>
>> </typedef>
>>
>> That didn't work. I also tried this inside my <plugin> tag (with and
>> without
>> the <classifier> element):
>>
>> <dependencies>
>> <dependency>
>> <groupId>org.apache.maven</groupId>
>> <artifactId>maven-artifact-ant</artifactId>
>> <version>2.0.4</version>
>> <classifier>dep</classifier>
>> </dependency>
>> </dependencies>
>>
>> Without the <classifier>, I just get the regular ant error message about
>> not
>> recognizing artifact:pom. With <classifier>, I get this perplexing stack
>> trace:
>>
>> java.lang.ClassCastException:
>> org.codehaus.plexus.component.configurator.BasicComponentConfigurator
>> at
>>
>> org.codehaus.plexus.personality.plexus.lifecycle.phase.AutoConfigurePhase.execute
>> (AutoConfigurePhase.java:34)
>> at
>> org.codehaus.plexus.lifecycle.AbstractLifecycleHandler.start(
>> AbstractLifecycleHandler.java:101)
>> at
>>
>> org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle
>> (AbstractComponentManager.java:105)
>> at
>>
>> org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance
>> (AbstractComponentManager.java:95)
>> at
>>
>> org.codehaus.plexus.component.manager.PerLookupComponentManager.getComponent
>> (PerLookupComponentManager.java:48)
>> at
>> org.codehaus.plexus.DefaultPlexusContainer.lookup(
>> DefaultPlexusContainer.java:331)
>> at
>> org.codehaus.plexus.DefaultPlexusContainer.lookup(
>> DefaultPlexusContainer.java:440)
>> at
>> org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(
>> DefaultPluginManager.java:524)
>> at
>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(
>> DefaultPluginManager.java:390)
>> at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
>> DefaultLifecycleExecutor.java:534)
>> at
>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
>> (DefaultLifecycleExecutor.java:475)
>> at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
>> DefaultLifecycleExecutor.java:454)
>> at
>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
>> (DefaultLifecycleExecutor.java:306)
>> at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
>> DefaultLifecycleExecutor.java:273)
>> at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
>> DefaultLifecycleExecutor.java:140)
>> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
>> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
>> :39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at
>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>> at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>> at
>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>> at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>>
>> How do I get maven to include the ant-tasks jar in the classpath?
>>
>> Second, where do I put xmlns:artifact="urn:maven-artifact-ant"? Right now
>> I'm putting it on maven's <project> tag, but perhaps it belongs on the
>> <tasks> tag.
>>
>> Thanks,
>> Paul
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Using-ant-tasks-inside-antrun-tf2508452.html#a6994761
>> Sent from the Maven - Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Using-ant-tasks-inside-antrun-tf2508452.html#a7000178
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]