[ 
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)

Reply via email to