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]

Reply via email to