[ 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) {{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. 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) {quote}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 ); } {quote} 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 {quote}{{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}} {{ );}} {{}}} {quote} 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) > {{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. -- This message was sent by Atlassian Jira (v8.3.4#803005)