On Sun, 22 Jun 2008 06:02:48 am Jason van Zyl wrote: > Use the maven-dependency-plugin, it can retrieve artifacts and place > them so that you can subsequently process them. I suggest staying away > from the artifact resolver directly.
Then I need to know how to drive maven-dependency-plugin programatically within another plugin. Basically I'm tring to drive IzPack with custom panels that need to be copied into the correct location for IzPack to use. The panels would be artifacts that would be specified using something like the following config structure in the project that invoked my plugin: <configuration> <izPackDir>/usr/local/IzPack-3.10.2/</izPackDir> <input>src/main/izpack/izpack-config.xml</input> <customPanels> <customPanel> <groupId>foo.bar</groupId> <artifactId>DoSomethingPanel</artifactId> <version>1.0</version> </customPanel> </customPanels> </configuration> I searched but could find no documentation that explained how I might do that with the dependency plugin, which is why the approach in the cookbook looked usable. By the way...why stay away from directly using the artifact resolution API? Isn't it meant to be used externally? Since I could find so little documentation on using maven components in a plugin, it strikes me that someone who knows the internals should make a concise and complete guide listing all the components and interfaces that people like me can use, rather than the vague hints out there. If I did miss some obvious documentation, then I apologise for casting nasturtiums. Maven's been great from a user's perspective, but harder to dissect from a developer's perspective. Eric > > On 20-Jun-08, at 7:59 PM, ericr wrote: > > Hi, > > > > I'm trying to develop a plugin in which I want to resolve an > > artifact so > > that I can copy it somewhere special before using it. Not knowing > > how (or if > > it's even possible) to embed the dependency plugin's resolution > > functionality, I decided to take what seemed like a simpler approach > > and > > perform the basic resolution myself, as according to > > http://docs.codehaus.org/display/MAVENUSER/Mojo+Developer+Cookbook. > > > > Unfortunately I get the following NPE: > > > > Caused by: java.lang.NullPointerException > > at > > org > > .apache > > .maven > > .artifact > > .resolver > > .DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:129) > > at > > org > > .apache > > .maven > > .artifact > > .resolver > > .DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:74) > > at > > com > > .izforge > > .izpack.maven.plugins.IzPackMojo.copyCustomPanels(IzPackMojo.java:174) > > > > The code snippet that I wrote is as follows: > > /** @component */ > > private org.apache.maven.artifact.factory.ArtifactFactory > > artifactFactory; > > > > /** @component */ > > private org.apache.maven.artifact.resolver.ArtifactResolver > > resolver; > > > > someMethod() { > > Artifact panelArtifact = > > artifactFactory.createArtifactWithClassifier(groupId, artifactId, > > version, > > "jar", ""); > > try > > { > > resolver.resolve(panelArtifact, remoteRepositories, > > localRepository); > > > > Do I need to create a variable in my plugin to store a component > > similar to > > the the ArtifactFactory and ArtifactResolver mentioned in the > > cookbook? Is > > there a better set of documentation that explains how to accomplish > > such > > tasks? > > > > Eric > > > > -- > > View this message in context: > > http://www.nabble.com/A-question-about-artifact-resolution-tp18040514p180 > >40514.html Sent from the Maven - Users mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > Thanks, > > Jason > > ---------------------------------------------------------- > Jason van Zyl > Founder, Apache Maven > jason at sonatype dot com > ---------------------------------------------------------- > > the course of true love never did run smooth ... > > -- Shakespeare > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- "Anything that is in the world when you're born is normal and ordinary and is just a natural part of the way the world works. Anything that's invented between when you're fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you're thirty-five is against the natural order of things." -- Douglas Adams
signature.asc
Description: This is a digitally signed message part.