[ https://issues.apache.org/jira/browse/MNG-6991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] François Guillot updated MNG-6991: ---------------------------------- Description: We have functional tests using the latest Maven snapshots and they started polluting the global ~/.m2/repository. [This commit|https://github.com/apache/maven/commit/ac80f5c2b93743c36e2b24ca91a47a0f13de981f] introduced a bug in the handling of the local repository definition. The local repository is taken from settings [here|https://github.com/apache/maven/blob/b962ff361aee64a291db588e9f88d86c5f9dee0c/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java#L234]. but then, before, Maven was doing (in MavenCli) {code} String localRepoProperty = request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); if ( localRepoProperty == null ) { localRepoProperty = request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); } if ( localRepoProperty != null ) { request.setLocalRepositoryPath( localRepoProperty ); } {code} effectively replacing the local repository definition only if `maven.repo.local` was defined in user or system properties.   After the commit mentioned above, the code does {code} request.setLocalRepositoryPath( determineLocalRepositoryPath( request ) ); ... private String determineLocalRepositoryPath( final MavenExecutionRequest request ) { return request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY, request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ) // null if not found ); } {code} effectively _always_ replacing the local repository definition, potentially nulling it. was: We have functional tests using the latest Maven snapshots and they started polluting the global ~/.m2/repository. [This commit|https://github.com/apache/maven/commit/ac80f5c2b93743c36e2b24ca91a47a0f13de981f] introduced a bug in the handling of the local repository definition. The local repository is taken from settings [here|https://github.com/apache/maven/blob/b962ff361aee64a291db588e9f88d86c5f9dee0c/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java#L234]. but then, before, Maven was doing (in MavenCli) String localRepoProperty = request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); if ( localRepoProperty == null ) { localRepoProperty = request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); } if ( localRepoProperty != null ) { request.setLocalRepositoryPath( localRepoProperty ); } effectively replacing the local repository definition only if `maven.repo.local` was defined in user or system properties.   After the commit mentioned above, the code does request.setLocalRepositoryPath( determineLocalRepositoryPath( request ) ); ... private String determineLocalRepositoryPath( final MavenExecutionRequest request ) { return request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY, request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ) // null if not found ); } effectively _always_ replacing the local repository definition, potentially nulling it. > settings-defined local repository is not honored > ------------------------------------------------ > > Key: MNG-6991 > URL: https://issues.apache.org/jira/browse/MNG-6991 > Project: Maven > Issue Type: Bug > Reporter: François Guillot > Priority: Major > > We have functional tests using the latest Maven snapshots and they started polluting the global ~/.m2/repository. > [This commit|https://github.com/apache/maven/commit/ac80f5c2b93743c36e2b24ca91a47a0f13de981f] introduced a bug in the handling of the local repository definition. > The local repository is taken from settings [here|https://github.com/apache/maven/blob/b962ff361aee64a291db588e9f88d86c5f9dee0c/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java#L234]. > but then, before, Maven was doing (in MavenCli) > {code} > String localRepoProperty = request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); > if ( localRepoProperty == null ) > { > localRepoProperty = request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ); > } > if ( localRepoProperty != null ) > { > request.setLocalRepositoryPath( localRepoProperty ); > } > {code} > effectively replacing the local repository definition only if `maven.repo.local` was defined in user or system properties. >   > After the commit mentioned above, the code does > {code} > request.setLocalRepositoryPath( determineLocalRepositoryPath( request ) ); > ... > private String determineLocalRepositoryPath( final MavenExecutionRequest request ) > { > return request.getUserProperties().getProperty( > MavenCli.LOCAL_REPO_PROPERTY, > request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY ) // null if not found > ); > } > {code} > effectively _always_ replacing the local repository definition, potentially nulling it. -- This message was sent by Atlassian Jira (v8.3.4#803005)