Skip to content

Commit f6935a9

Browse files
authored
[MNG-8030] Backport itr: ignore transitive repositories (#1469)
Backport of the Maven4 feature: ignore transitive repositories. --- https://issues.apache.org/jira/browse/MNG-8030
1 parent 18b8893 commit f6935a9

File tree

5 files changed

+33
-0
lines changed

5 files changed

+33
-0
lines changed

maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public class DefaultMavenExecutionRequest implements MavenExecutionRequest {
6565

6666
private boolean cacheNotFound;
6767

68+
private boolean ignoreTransitiveRepositories;
69+
6870
private List<Proxy> proxies;
6971

7072
private List<Server> servers;
@@ -169,6 +171,7 @@ public static MavenExecutionRequest copy(MavenExecutionRequest original) {
169171
copy.setOffline(original.isOffline());
170172
copy.setInteractiveMode(original.isInteractiveMode());
171173
copy.setCacheNotFound(original.isCacheNotFound());
174+
copy.setIgnoreTransitiveRepositories(original.isIgnoreTransitiveRepositories());
172175
copy.setCacheTransferError(original.isCacheTransferError());
173176
copy.setProxies(original.getProxies());
174177
copy.setServers(original.getServers());
@@ -1018,6 +1021,17 @@ public MavenExecutionRequest setCacheNotFound(boolean cacheNotFound) {
10181021
return this;
10191022
}
10201023

1024+
@Override
1025+
public boolean isIgnoreTransitiveRepositories() {
1026+
return ignoreTransitiveRepositories;
1027+
}
1028+
1029+
@Override
1030+
public MavenExecutionRequest setIgnoreTransitiveRepositories(boolean ignoreTransitiveRepositories) {
1031+
this.ignoreTransitiveRepositories = ignoreTransitiveRepositories;
1032+
return this;
1033+
}
1034+
10211035
@Override
10221036
public boolean isUseLegacyLocalRepository() {
10231037
return this.useLegacyLocalRepositoryManager;

maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,16 @@ public interface MavenExecutionRequest {
252252

253253
MavenExecutionRequest setCacheNotFound(boolean cacheNotFound);
254254

255+
/**
256+
* @since 3.9.7
257+
*/
258+
boolean isIgnoreTransitiveRepositories();
259+
260+
/**
261+
* @since 3.9.7
262+
*/
263+
MavenExecutionRequest setIgnoreTransitiveRepositories(boolean ignoreTransitiveRepositories);
264+
255265
// Profiles
256266
List<Profile> getProfiles();
257267

maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ public DefaultRepositorySystemSession newRepositorySession(MavenExecutionRequest
341341

342342
session.setRepositoryListener(eventSpyDispatcher.chainListener(new LoggingRepositoryListener(logger)));
343343

344+
session.setIgnoreArtifactDescriptorRepositories(request.isIgnoreTransitiveRepositories());
345+
344346
boolean recordReverseTree = ConfigUtils.getBoolean(session, false, MAVEN_REPO_LOCAL_RECORD_REVERSE_TREE);
345347
if (recordReverseTree) {
346348
session.setRepositoryListener(new ChainedRepositoryListener(

maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ public class CLIManager {
107107

108108
public static final String COLOR = "color";
109109

110+
public static final String IGNORE_TRANSITIVE_REPOSITORIES = "itr";
111+
110112
protected Options options;
111113

112114
@SuppressWarnings({"checkstyle:linelength", "checkstyle:MethodLength"})
@@ -261,6 +263,10 @@ public CLIManager() {
261263
.longOpt("no-transfer-progress")
262264
.desc("Do not display transfer progress when downloading or uploading")
263265
.build());
266+
options.addOption(Option.builder(IGNORE_TRANSITIVE_REPOSITORIES)
267+
.longOpt("ignore-transitive-repositories")
268+
.desc("If set, Maven will ignore remote repositories introduced by transitive dependencies.")
269+
.build());
264270

265271
// Adding this back in for compatibility with the verifier that hard codes this option.
266272
options.addOption(Option.builder("npr")

maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,6 +1407,7 @@ private MavenExecutionRequest populateRequest(CliRequest cliRequest, MavenExecut
14071407

14081408
request.setCacheNotFound(true);
14091409
request.setCacheTransferError(false);
1410+
request.setIgnoreTransitiveRepositories(commandLine.hasOption(CLIManager.IGNORE_TRANSITIVE_REPOSITORIES));
14101411

14111412
//
14121413
// Builder, concurrency and parallelism

0 commit comments

Comments
 (0)