12
12
import java .util .Collection ;
13
13
import java .util .Collections ;
14
14
import java .util .HashSet ;
15
- import java .util .LinkedHashSet ;
16
15
import java .util .List ;
17
16
import java .util .Properties ;
18
17
import java .util .Set ;
21
20
import java .util .concurrent .ForkJoinPool ;
22
21
23
22
import org .apache .maven .artifact .Artifact ;
23
+ import org .apache .maven .artifact .resolver .ArtifactResolutionException ;
24
+ import org .apache .maven .artifact .resolver .ArtifactResolutionRequest ;
25
+ import org .apache .maven .artifact .resolver .ArtifactResolutionResult ;
26
+ import org .apache .maven .artifact .resolver .ResolutionErrorHandler ;
24
27
import org .apache .maven .plugin .MojoExecutionException ;
25
28
import org .apache .maven .plugin .MojoFailureException ;
26
29
import org .apache .maven .plugins .annotations .Component ;
27
30
import org .apache .maven .plugins .annotations .Mojo ;
28
31
import org .apache .maven .plugins .annotations .Parameter ;
29
32
import org .apache .maven .plugins .annotations .ResolutionScope ;
30
- import org .apache .maven .project .MavenProject ;
31
33
import org .apache .maven .project .ProjectBuilder ;
32
- import org .apache .maven .project .ProjectBuildingRequest ;
33
- import org .apache .maven .shared .artifact .filter .resolve .AndFilter ;
34
- import org .apache .maven .shared .artifact .filter .resolve .TransformableFilter ;
35
- import org .apache .maven .shared .transfer .artifact .resolve .ArtifactResult ;
36
- import org .apache .maven .shared .transfer .dependencies .resolve .DependencyResolver ;
34
+ import org .apache .maven .repository .RepositorySystem ;
37
35
38
36
/**
39
37
* Executes the supplied java class in the current VM with the enclosing project's dependencies as classpath.
@@ -46,7 +44,10 @@ public class ExecJavaMojo
46
44
extends AbstractExecMojo
47
45
{
48
46
@ Component
49
- private DependencyResolver dependencyResolver ;
47
+ private RepositorySystem repositorySystem ;
48
+
49
+ @ Component
50
+ private ResolutionErrorHandler resolutionErrorHandler ;
50
51
51
52
52
53
/**
@@ -702,29 +703,26 @@ private Set<Artifact> determineRelevantPluginDependencies()
702
703
private Set <Artifact > resolveExecutableDependencies ( Artifact executablePomArtifact )
703
704
throws MojoExecutionException
704
705
{
705
-
706
- Set <Artifact > executableDependencies = new LinkedHashSet <>();
707
706
try
708
707
{
709
- ProjectBuildingRequest buildingRequest = getSession ().getProjectBuildingRequest ();
710
-
711
- MavenProject executableProject =
712
- this .projectBuilder .build ( executablePomArtifact , buildingRequest ).getProject ();
708
+ ArtifactResolutionRequest request = new ArtifactResolutionRequest ()
709
+ .setArtifact ( executablePomArtifact )
710
+ .setLocalRepository ( getSession ().getLocalRepository () )
711
+ .setRemoteRepositories ( getSession ().getRequest ().getRemoteRepositories () )
712
+ .setForceUpdate ( getSession ().getRequest ().isUpdateSnapshots () )
713
+ .setOffline ( getSession ().isOffline () )
714
+ .setResolveTransitively ( true );
713
715
714
- for ( ArtifactResult artifactResult : dependencyResolver .resolveDependencies ( buildingRequest ,
715
- executableProject .getModel (),
716
- new AndFilter ( Collections .<TransformableFilter >emptyList () ) ) )
717
- {
718
- executableDependencies .add ( artifactResult .getArtifact () );
719
- }
716
+ ArtifactResolutionResult result = repositorySystem .resolve ( request );
717
+ resolutionErrorHandler .throwErrors ( request , result );
718
+
719
+ return result .getArtifacts ();
720
720
}
721
- catch ( Exception ex )
721
+ catch ( ArtifactResolutionException ex )
722
722
{
723
723
throw new MojoExecutionException ( "Encountered problems resolving dependencies of the executable "
724
724
+ "in preparation for its execution." , ex );
725
725
}
726
-
727
- return executableDependencies ;
728
726
}
729
727
730
728
/**
0 commit comments