Thanks Dan. I didn't appreciate at first the impact of setResolveTransitively(true). NB I needed to change request.setResolveRoot(false) to exclude the provided artifact.
William On Fri, Jun 20, 2014 at 11:44 AM, Daniel Kulp <dk...@apache.org> wrote: > > On Jun 19, 2014, at 6:36 PM, William Ferguson < > william.fergu...@xandar.com.au> wrote: > > > Hi Dan, > > > > if the ArtifactResolutionResult contains the deps for the Artifact in the > > request then that's exactly what I want. However I can't see that it > does. > > What am I missing? > > > ArtifactResolutionResult.getArtifacts() is a list of all the artifacts > that it resolved. > > > NB the resolution also needs to be able to resolve Artifacts in the > > reactor. I'm pretty certain that > > > > @Component > > private org.apache.maven.repository.RepositorySystem repository; > > > > is only going to resolve from the local repo, not the reactor, right? > > This I don’t know. I haven’t tried to have it resolve anything in the > reactor. > > Dan > > > > > > William > > > > > > On Fri, Jun 20, 2014 at 4:58 AM, Daniel Kulp <dk...@apache.org> wrote: > > > >> > >> For Aries, I ended up doing: > >> > >> > >> @Component > >> private org.apache.maven.repository.RepositorySystem repository; > >> > >> private File resolve(String artifactDescriptor) { > >> String[] s = artifactDescriptor.split(":"); > >> > >> String type = (s.length >= 4 ? s[3] : "jar"); > >> Artifact artifact = repository.createArtifact(s[0], s[1], s[2], > >> type); > >> > >> ArtifactResolutionRequest request = new > >> ArtifactResolutionRequest(); > >> request.setArtifact(artifact); > >> > >> request.setResolveRoot(true).setResolveTransitively(false); > >> request.setServers( session.getRequest().getServers() ); > >> request.setMirrors( session.getRequest().getMirrors() ); > >> request.setProxies( session.getRequest().getProxies() ); > >> request.setLocalRepository(session.getLocalRepository()); > >> > >> > request.setRemoteRepositories(session.getRequest().getRemoteRepositories()); > >> repository.resolve(request); > >> return artifact.getFile(); > >> } > >> > >> If you set “setResolveTransitively(true)” then the > >> ArtifactResolutionResponse would have all the deps available in it. > >> > >> That seems to work for both Maven 3.0 and 3.1/3.2. > >> > >> Dan > >> > >> > >> Op Thu, 19 Jun 2014 00:01:52 +0200 schreef William Ferguson < > >> william.fergu...@xandar.com.au>: > >> > >>> I asked on maven-users but didn't get any viable responses. So I'm > hoping > >>> someone here can help. > >>> > >>> -------------------------- > >>> I have a Mojo that needs to work with Maven 3.0.* and 3.1+ > >>> > >>> In the Mojo I have an Artifact and I need to resolve it's dependencies. > >> How > >>> can/should I do it? > >>> > >>> If I can resolve the Artifact to a MavenProject then I can use > >>> DependencyGraphBuilder (from maven-dependency-tree) to construct a > graph > >> of > >>> the deps. But I'm struggling to make the Artifact to MavenProject > >>> conversion happen. > >>> > >>> I thought that If I could get a URL to the Artifact's POM file then I > >> could > >>> use DefaultMavenRuntime (maven-runtime) to resolve the URL into a > >>> MavenProject. But > >>> > >>> 1. I can't work out how to get a URL to the artifact's POM file (it > >>> needs to handle both reactor artifacts and repo artifacts) > >>> 2. Even with a URL to the POM file, MavenRuntime#getProject) is > >>> returning null. > >>> > >>> Can someone please point me in the right direction? > >>> Am I even on the right path or is there a much more straight forward > way > >> of > >>> getting the dependencies for the Artifact? > >>> -------------------------- > >>> > >>> William > >> > >> > >> -- > >> Daniel Kulp > >> dk...@apache.org - http://dankulp.com/blog > >> Talend Community Coder - http://coders.talend.com > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > >> For additional commands, e-mail: dev-h...@maven.apache.org > >> > >> > > -- > Daniel Kulp > dk...@apache.org - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > >