You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by /U <um...@comcast.net> on 2007/12/01 21:37:09 UTC

Forcing the download of a dependency

I have written a Mojo which binds to "generate-sources" phase and needs to 
process a jar artifact dependency of the project. The problem is that when I
invoke
the Mojo, the dependency (the artifact) is not downloaded into 
project.getDirectory().

My Mojo is defined in plugin my.plugins:myplugin as follows:

    /**
     * Goal which extracts files from dependency framework.jar.
     *
     * @goal bootstrap
     * 
     * @requiresDependencyResolution compile
     * @phase generate-sources
     */

I have also included the component "dependencies" in the Mojo (I thought
this might be needed to force dependency resolution):

      /**
	 * The set of dependencies required by this project
	 * @parameter default-value="${project.dependencies}"
	 * @required
	 * @readonly
	 */
	private Collection dependencies;

Now consider a project foo where this plugin is used during
"generate-sources" phase:

        // Excerpt from the POM using the Mojo:
       <dependencies>
          <dependency>
              <groupId>MyGroup</groupId>
             <artifactId>framework</artifactId>
             <version>1.0-SNAPSHOT</version>
          </dependency>
       </dependencies>

The client project binds the Mojo to the generate-sources phase:

        <plugin>
               <groupId>my.plugins</groupId>
                <artifactId>myplugin</artifactId>
                 <configuration>
                        <resourcesFile>
                                                framework-1.0-SNAPSHOT.jar
                         </resourcesFile>
                  </configuration>
                  <executions>
                       <execution>
                                <id>bootstrap</id>
                                <phase>generate-sources</phase>
                                 <configuration>
                                                       //...
                                 </configuration>
                        </execution>
                   </executions>
          </plugin>


The Mojo processes the artifact framework.jar when invoked:

    $ mvn myplugin:bootstrap

This fails because it does not find the artifact framework-1.0-SNAPSHOT.jar
in MavenProject.getBuild().getDirectory().

I need to force the plugin to download framework-1.0-SNAPSHOT.jar
during generate-sources phase; I thought the class-level
annotation
        @requiresDependencyResolution generate-resources

would do the trick. It obviously is not working. How do I force the project
to
download this artifact when this Mojo is invoked?

Thanks!

/U
-- 
View this message in context: http://www.nabble.com/Forcing-the-download-of-a-dependency-tf4929500s177.html#a14109351
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Forcing the download of a dependency

Posted by "Brian E. Fox" <br...@reply.infinity.nu>.
The dependency:copy mojo already does what you want. So you can either
use that, or examine the code to make yours work. 

-----Original Message-----
From: /U [mailto:uma_rk@comcast.net] 
Sent: Saturday, December 01, 2007 2:37 PM
To: users@maven.apache.org
Subject: Forcing the download of a dependency


I have written a Mojo which binds to "generate-sources" phase and needs
to 
process a jar artifact dependency of the project. The problem is that
when I
invoke
the Mojo, the dependency (the artifact) is not downloaded into 
project.getDirectory().

My Mojo is defined in plugin my.plugins:myplugin as follows:

    /**
     * Goal which extracts files from dependency framework.jar.
     *
     * @goal bootstrap
     * 
     * @requiresDependencyResolution compile
     * @phase generate-sources
     */

I have also included the component "dependencies" in the Mojo (I thought
this might be needed to force dependency resolution):

      /**
	 * The set of dependencies required by this project
	 * @parameter default-value="${project.dependencies}"
	 * @required
	 * @readonly
	 */
	private Collection dependencies;

Now consider a project foo where this plugin is used during
"generate-sources" phase:

        // Excerpt from the POM using the Mojo:
       <dependencies>
          <dependency>
              <groupId>MyGroup</groupId>
             <artifactId>framework</artifactId>
             <version>1.0-SNAPSHOT</version>
          </dependency>
       </dependencies>

The client project binds the Mojo to the generate-sources phase:

        <plugin>
               <groupId>my.plugins</groupId>
                <artifactId>myplugin</artifactId>
                 <configuration>
                        <resourcesFile>
 
framework-1.0-SNAPSHOT.jar
                         </resourcesFile>
                  </configuration>
                  <executions>
                       <execution>
                                <id>bootstrap</id>
                                <phase>generate-sources</phase>
                                 <configuration>
                                                       //...
                                 </configuration>
                        </execution>
                   </executions>
          </plugin>


The Mojo processes the artifact framework.jar when invoked:

    $ mvn myplugin:bootstrap

This fails because it does not find the artifact
framework-1.0-SNAPSHOT.jar
in MavenProject.getBuild().getDirectory().

I need to force the plugin to download framework-1.0-SNAPSHOT.jar
during generate-sources phase; I thought the class-level
annotation
        @requiresDependencyResolution generate-resources

would do the trick. It obviously is not working. How do I force the
project
to
download this artifact when this Mojo is invoked?

Thanks!

/U
-- 
View this message in context:
http://www.nabble.com/Forcing-the-download-of-a-dependency-tf4929500s177
.html#a14109351
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org