This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 732e3649e1 [MNG-7980] CLI switch to ignore transitive repositories.
(#1354)
732e3649e1 is described below
commit 732e3649e12ab9c6bce570340b83b7270d5c346a
Author: Tamas Cservenak <[email protected]>
AuthorDate: Wed Dec 20 14:03:57 2023 +0100
[MNG-7980] CLI switch to ignore transitive repositories. (#1354)
If set, Maven will ignore all remote repositories introduced by
transitive dependencies POM.
---
https://issues.apache.org/jira/browse/MNG-7980
---
.../maven/execution/DefaultMavenExecutionRequest.java | 14 ++++++++++++++
.../org/apache/maven/execution/MavenExecutionRequest.java | 10 ++++++++++
.../aether/DefaultRepositorySystemSessionFactory.java | 1 +
.../src/main/java/org/apache/maven/cli/CLIManager.java | 6 ++++++
.../src/main/java/org/apache/maven/cli/MavenCli.java | 2 ++
5 files changed, 33 insertions(+)
diff --git
a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
index 7f2bb95362..ba8fe25bc8 100644
---
a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
+++
b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
@@ -70,6 +70,8 @@ public class DefaultMavenExecutionRequest implements
MavenExecutionRequest {
private boolean ignoreInvalidArtifactDescriptor = true;
+ private boolean ignoreTransitiveRepositories;
+
private List<Proxy> proxies;
private List<Server> servers;
@@ -180,6 +182,7 @@ public class DefaultMavenExecutionRequest implements
MavenExecutionRequest {
copy.setCacheTransferError(original.isCacheTransferError());
copy.setIgnoreMissingArtifactDescriptor(original.isIgnoreMissingArtifactDescriptor());
copy.setIgnoreInvalidArtifactDescriptor(original.isIgnoreInvalidArtifactDescriptor());
+
copy.setIgnoreTransitiveRepositories(original.isIgnoreTransitiveRepositories());
copy.setProxies(original.getProxies());
copy.setServers(original.getServers());
copy.setMirrors(original.getMirrors());
@@ -1056,12 +1059,23 @@ public class DefaultMavenExecutionRequest implements
MavenExecutionRequest {
return ignoreInvalidArtifactDescriptor;
}
+ @Override
+ public boolean isIgnoreTransitiveRepositories() {
+ return ignoreTransitiveRepositories;
+ }
+
@Override
public MavenExecutionRequest setIgnoreInvalidArtifactDescriptor(boolean
ignoreInvalid) {
this.ignoreInvalidArtifactDescriptor = ignoreInvalid;
return this;
}
+ @Override
+ public MavenExecutionRequest setIgnoreTransitiveRepositories(boolean
ignoreTransitiveRepositories) {
+ this.ignoreTransitiveRepositories = ignoreTransitiveRepositories;
+ return this;
+ }
+
@Override
public boolean isUseLegacyLocalRepository() {
return this.useLegacyLocalRepositoryManager;
diff --git
a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
index c5bcb6a7a7..1904dff7a6 100644
---
a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
+++
b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
@@ -305,6 +305,16 @@ public interface MavenExecutionRequest {
*/
MavenExecutionRequest setIgnoreInvalidArtifactDescriptor(boolean
ignoreInvalid);
+ /**
+ * @since 4.0.0
+ */
+ boolean isIgnoreTransitiveRepositories();
+
+ /**
+ * @since 4.0.0
+ */
+ MavenExecutionRequest setIgnoreTransitiveRepositories(boolean
ignoreTransitiveRepositories);
+
// Profiles
List<Profile> getProfiles();
diff --git
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index a3e718f08b..8fcf89d66e 100644
---
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -372,6 +372,7 @@ public class DefaultRepositorySystemSessionFactory {
session.setUserProperties(request.getUserProperties());
session.setSystemProperties(request.getSystemProperties());
session.setConfigProperties(configProps);
+
session.setIgnoreArtifactDescriptorRepositories(request.isIgnoreTransitiveRepositories());
session.setTransferListener(request.getTransferListener());
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index 3b04b1922b..baf1c2127c 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -121,6 +121,8 @@ public class CLIManager {
public static final String STRICT_ARTIFACT_DESCRIPTOR_POLICY = "sadp";
+ public static final String IGNORE_TRANSITIVE_REPOSITORIES = "itr";
+
/** This option is deprecated and may be repurposed as Java debug in a
future version.
* Use {@code -X/--verbose} instead. */
@Deprecated
@@ -323,6 +325,10 @@ public class CLIManager {
.hasArg()
.desc("Defines 'strict' artifact descriptor policy. Supported
values are 'true', 'false' (default).")
.build());
+ options.addOption(Option.builder(IGNORE_TRANSITIVE_REPOSITORIES)
+ .longOpt("ignore-transitive-repositories")
+ .desc("If set, Maven will ignore remote repositories
introduced by transitive dependencies.")
+ .build());
// Adding this back to make Maven fail if used
options.addOption(Option.builder("llr")
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 422fe9c2ff..98bd4092d4 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -1304,6 +1304,8 @@ public class MavenCli {
request.setIgnoreMissingArtifactDescriptor(true);
request.setIgnoreInvalidArtifactDescriptor(true);
}
+ enableOnPresentOption(
+ commandLine, CLIManager.IGNORE_TRANSITIVE_REPOSITORIES,
request::setIgnoreTransitiveRepositories);
performProjectActivation(commandLine, request.getProjectActivation());
performProfileActivation(commandLine, request.getProfileActivation());