diff --git a/maven-bootstrap-core/src/main/java/org/sourcepit/maven/bootstrap/core/AbstractBootstrapper.java b/maven-bootstrap-core/src/main/java/org/sourcepit/maven/bootstrap/core/AbstractBootstrapper.java index 172dec8..9582e7f 100644 --- a/maven-bootstrap-core/src/main/java/org/sourcepit/maven/bootstrap/core/AbstractBootstrapper.java +++ b/maven-bootstrap-core/src/main/java/org/sourcepit/maven/bootstrap/core/AbstractBootstrapper.java @@ -35,6 +35,7 @@ import javax.inject.Inject; +import org.apache.maven.ArtifactFilterManager; import org.apache.maven.MavenExecutionException; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.ArtifactUtils; @@ -43,6 +44,8 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionRequest; import org.apache.maven.artifact.resolver.ArtifactResolutionResult; import org.apache.maven.artifact.resolver.ResolutionErrorHandler; +import org.apache.maven.artifact.resolver.filter.AndArtifactFilter; +import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter; import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter; import org.apache.maven.classrealm.ClassRealmManager; import org.apache.maven.execution.DefaultMavenExecutionRequest; @@ -110,6 +113,9 @@ public abstract class AbstractBootstrapper implements MavenExecutionParticipant @Inject private MojoExecutor mojoExecutor; + + @Inject + private ArtifactFilterManager artifactFilterManager; private final ImportEnforcer importEnforcer; @@ -535,6 +541,9 @@ private ClassRealm getExtensionExtensionRealm(MavenSession bootSession, MavenPro newRealm.importFrom(extensionRealm, exportedPackage); } newRealm.importFrom(classRealmManager.getMavenApiRealm(), ""); + // org.apache.maven.bridge currently not exposed via Maven Api (3.2.3) but required by API components, e.g + // org.apache.maven.project.DefaultProjectBuilder. + newRealm.importFrom(classRealmManager.getCoreRealm(), "org.apache.maven.bridge"); } } @@ -603,10 +612,13 @@ private ArtifactResolutionResult resolve(MavenSession session, MavenProject proj final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setResolveRoot(true); request.setResolveTransitively(true); - request - .setResolutionFilter(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME_PLUS_SYSTEM)); - request - .setCollectionFilter(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME_PLUS_SYSTEM)); + + final AndArtifactFilter artifactFilter = new AndArtifactFilter(); + artifactFilter.add(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME_PLUS_SYSTEM)); + artifactFilter.add(new ExclusionSetFilter(artifactFilterManager.getCoreArtifactExcludes())); + + request.setResolutionFilter(artifactFilter); + request.setCollectionFilter(artifactFilter); final MavenExecutionRequest executionRequest = session.getRequest(); request.setForceUpdate(executionRequest.isUpdateSnapshots()); diff --git a/pom.xml b/pom.xml index 86e2d9f..8be9660 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.sourcepit srcpit-parent - 19 + 20-SNAPSHOT org.sourcepit.tools @@ -61,17 +61,17 @@ org.sourcepit.common.maven common-maven-core - 0.21.1 + 0.22.0-SNAPSHOT org.sourcepit.common common-testing - 0.12.0 + 0.13.0-SNAPSHOT org.sourcepit.common org.sourcepit.common.utils - 0.14.1 + 0.15.0-SNAPSHOT @@ -82,7 +82,7 @@ org.sourcepit.tools deploy-maven-plugin - 0.2.0 + 0.3.0-SNAPSHOT