Le vendredi 20 juin 2014 08:36:46 William Ferguson a écrit : > 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? > > 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? wrong, I already: - explained it - updated maven-dependency-tree javadoc to keep track of explanations [1] - updated the reactor IT to prove that it runs as expected (ie not resolved before compile, but resolved after compile)
Regards, Hervé [1] http://maven.apache.org/shared-archives/maven-dependency-tree-LATEST/apidocs/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.html > > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org