I am able to construct Dependency from my Artifact's GAV, maven-artifact-transfer's DependencyResolver handles the rest.
Thanks to Robert's excellent works under maven-artifact-transfer -Dan On Wed, Dec 28, 2016 at 2:17 AM, Robert Scholte <[email protected]> wrote: > Well, you can go from dependency to artifact to file, but not the other > way around. If you want to go from artifact to dependency, then the > artifact should have been a dependency from the beginning. I've tried to > make the difference more clear on the comparison page[1]. > While integrating maven-artifact-transfer in several plugins I noticed > that quite a lot were using artifacts where actually dependencies should > have been used. I've managed to refactor all these cases by using > dependencies instead. > > Be aware that the o.a.m.a.Artifact[2] is a confusing interface, it has way > too much methods which actually belong to the dependency. > > Robert > > [1] http://maven.apache.org/shared/maven-artifact-transfer/comparison.html > [2] http://maven.apache.org/ref/3.3.9/maven-artifact/apidocs/org > /apache/maven/artifact/Artifact.html > > On Wed, 28 Dec 2016 10:01:17 +0100, Dan Tran <[email protected]> wrote: > > is there a component to convert and Artifact to Dependency? >> >> Thanks >> >> -D >> >> On Tue, Dec 27, 2016 at 3:31 PM, Dan Tran <[email protected]> wrote: >> >> Bingo, it works. I will close to Jira >>> >>> Thanks Robert >>> >>> -Dan >>> >>> On Tue, Dec 27, 2016 at 1:01 PM, Robert Scholte <[email protected]> >>> wrote: >>> >>> Just to be sure: >>>> >>>> buildingRequest = repositoryManager.setLocalRepositoryBasedir( >>>> buildingRequest, localRepositoryPath ); >>>> >>>> do you pick up the new buildingRequest? This is required due to >>>> immutable >>>> instances inside buildingRequest. >>>> IIRC I've already applied this to the maven-invoker-plugin, which also >>>> needs its own localRepository. >>>> >>>> Robert >>>> >>>> >>>> On Tue, 27 Dec 2016 05:30:43 +0100, Dan Tran <[email protected]> wrote: >>>> >>>> Thanks, Robert, >>>> >>>>> >>>>> I am going to switch to DependencyResolver for my use case >>>>> >>>>> I also filed https://issues.apache.org/jira/browse/MSHARED-604. Let me >>>>> know >>>>> if it is valid, so I can work on the fix >>>>> >>>>> Thanks >>>>> >>>>> -Dan >>>>> >>>>> >>>>> >>>>> On Mon, Dec 26, 2016 at 2:53 AM, Robert Scholte <[email protected]> >>>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>>> >>>>>> we must be clear about the naming: an artifact can never have a >>>>>> version >>>>>> range; it is a maven coordinate which results in one file. >>>>>> However, a dependency can have a version range, that's the proper way >>>>>> to >>>>>> get the range resolved and get the matching artifact. >>>>>> >>>>>> Robert >>>>>> >>>>>> >>>>>> >>>>>> On Mon, 26 Dec 2016 08:33:59 +0100, Dan Tran <[email protected]> >>>>>> wrote: >>>>>> >>>>>> to elaborate my use case: where i started with maven GAV as string, >>>>>> >>>>>> convert to maven artifact, and finally resolve with option to change >>>>>>> local >>>>>>> repo path >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> -Dan >>>>>>> >>>>>>> On Sun, Dec 25, 2016 at 11:31 PM, Dan Tran <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>> Thanks, I am able to obtain ProjectBuildingRequest either with >>>>>>> >>>>>>> MavenSession or MavenProject, however, there are 2 issues >>>>>>>> >>>>>>>> 1. version range does not work, stepping the debugger show no sign >>>>>>>> of >>>>>>>> processing resolveVersionRanges flag. and aether throws exception >>>>>>>> >>>>>>>> 2. Looks like ProjectBuildingRequest is immutable, i cant override >>>>>>>> localRepository as resolve time. I can do so with ArtifactResolver >>>>>>>> from >>>>>>>> maven-compat >>>>>>>> >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> -Dan >>>>>>>> >>>>>>>> On Sun, Dec 25, 2016 at 10:50 PM, Guillaume Boué <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> If you're inside a Maven plugin, you can get a >>>>>>>> ProjectBuildingRequest >>>>>>>> >>>>>>>> with the session. >>>>>>>>> >>>>>>>>> https://maven.apache.org/ref/3.3.9/maven-core/apidocs/org/ap >>>>>>>>> ache/maven/execution/MavenSession.html#getProjectBuildingRequest() >>>>>>>>> >>>>>>>>> The shared ArtifactResolver from maven-artifact-transfer should >>>>>>>>> resolve >>>>>>>>> version ranges, yes. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Le 26/12/2016 à 03:59, Dan Tran a écrit : >>>>>>>>> >>>>>>>>> I found org.apache.maven.shared.artifact.resolve.ArtifactResolver >>>>>>>>> >>>>>>>>> with >>>>>>>>>> input of ProjectBuildingRequest >>>>>>>>>> >>>>>>>>>> here is how I construct the request >>>>>>>>>> >>>>>>>>>> ProjectBuildingRequest req = new >>>>>>>>>> DefaultProjectBuildingRequest(); >>>>>>>>>> req.setLocalRepository(localRepository); >>>>>>>>>> req.setRemoteRepositories(remoteRepositories); >>>>>>>>>> req.setResolveVersionRanges(true); >>>>>>>>>> req.setRepositorySession(???);//fixme >>>>>>>>>> >>>>>>>>>> I have access to both local and remote repos instances, >>>>>>>>>> >>>>>>>>>> How do I obtain a repositorySession? >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> >>>>>>>>>> -Dan >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sun, Dec 25, 2016 at 10:45 AM, Dan Tran <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Does maven-artifact-transfer have this feature? if so which api? >>>>>>>>>>> >>>>>>>>>>> basically, I have an org.apache.maven.artifact.Artifact with >>>>>>>>>>> version >>>>>>>>>>> range set. I need to resolve it to pickup the matching version >>>>>>>>>>> available >>>>>>>>>>> at maven repo >>>>>>>>>>> >>>>>>>>>>> the org.apache.maven.artifact.resolver.ArtifactResolver from >>>>>>>>>>> maven-compat cant resolve it >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> -Dan >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> --- >>>>>>>>>>> >>>>>>>>>> L'absence de virus dans ce courrier électronique a été vérifiée >>>>>>>>> par >>>>>>>>> le >>>>>>>>> logiciel antivirus Avast. >>>>>>>>> https://www.avast.com/antivirus >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------------------------------------ >>>>>>>>> --------- >>>>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>>>> For additional commands, e-mail: [email protected] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------------------------------------ >>>>>>>>> >>>>>>>> --------- >>>>>> To unsubscribe, e-mail: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>>> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
