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