You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Petr Široký (Jira)" <ji...@apache.org> on 2022/12/16 08:50:00 UTC

[jira] [Updated] (MNG-7631) Current working directory is used as local repository (instead of ~/.m2/repository) when settings.xml contains empty element

     [ https://issues.apache.org/jira/browse/MNG-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Petr Široký updated MNG-7631:
-----------------------------
    Description: 
I have tried to build a sample project locally using Maven 4.0.0-alpha-3 and I am seeing one difference / inconsistency with the behavior of empty {{<localRepository/>}} tag in {{settings.xml}} file, when comparing to Maven 3.8.6.

My {{settings.xml}} file looks like this:
{code:xml}
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
</settings>
{code}
When I run a build with Maven 3.8.6, everything works as I would expect and by default the {{~/.m2/repository}} is chosen.

However, if I build with Maven {{{}4.0.0-alpha-3{}}}, it chooses the _current working directory_ as the root directory for the local repository. So I end-up with directories like {{{}aopalliance{}}}, {{{}avalon-framework{}}}, etc., next to the {{{}pom.xml{}}}.

If I remove the empty element {{<localRepository/>}} from the {{{}settings.xml{}}}, then {{~/.m2/repository}} is chosen and it works the same as in Maven 3.x.

I was doing some quick testing and git bisecting and assuming I did not mess anything up, the commit causing this behavior is [https://github.com/apache/maven/commit/2a9f39336cec1d8e52d30cc48503d51ed8672536] - MNG-7553 New clean API with immutable model ([#703|https://github.com/apache/maven/pull/703])

(and it's huge, so I haven't yet looked in detail at the changes).

I am not 100% sure this is a bug, but it is at least a difference in behavior comparing to Maven 3.x.

 

Edit: I also tried with {{{}-f <path-to-pom.xml>{}}}, so the local repository root really is {{{}<current-working-dir>{}}}, not {{<project-dir>}} (even if they are the same usually).

  was:
I have tried to build a sample project locally using Maven 4.0.0-alpha-3 and I am seeing one difference / inconsistency with the behavior of empty {{<localRepository/>}} tag in {{settings.xml}} file, when comparing to Maven 3.8.6.

My {{settings.xml}} file looks like this:
{code:xml}
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
</settings>
{code}
When I run a build with Maven 3.8.6, everything works as I would expect and by default the {{~/.m2/repository}} is chosen.

However, if I build with Maven {{{}4.0.0-alpha-3{}}}, it chooses the _current working directory_ as the root directory for the local repository. So I end-up with directories like {{{}aopalliance{}}}, {{{}avalon-framework{}}}, etc., next to the {{{}pom.xml{}}}.

If I remove the empty element {{<localRepository/>}} from the {{{}settings.xml{}}}, then {{~/.m2/repository}} is chosen and it works the same as in Maven 3.x.

I was doing some quick testing and git bisecting and assuming I did not mess anything up, the commit causing this behavior is [https://github.com/apache/maven/commit/2a9f39336cec1d8e52d30cc48503d51ed8672536] - [MNG-7553] New clean API with immutable model ([#703|https://github.com/apache/maven/pull/703])

(and it's huge, so I haven't yet looked in detail at the changes).

I am not 100% sure this is a bug, but it is at least a difference in behavior comparing to Maven 3.x.


> Current working directory is used as local repository (instead of ~/.m2/repository) when settings.xml contains empty <localRepository/> element
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-7631
>                 URL: https://issues.apache.org/jira/browse/MNG-7631
>             Project: Maven
>          Issue Type: Bug
>          Components: Settings
>    Affects Versions: 4.0.0-alpha-2, 4.0.0-alpha-3
>         Environment: Linux x86_64 (Fedora 36)
>            Reporter: Petr Široký
>            Priority: Minor
>
> I have tried to build a sample project locally using Maven 4.0.0-alpha-3 and I am seeing one difference / inconsistency with the behavior of empty {{<localRepository/>}} tag in {{settings.xml}} file, when comparing to Maven 3.8.6.
> My {{settings.xml}} file looks like this:
> {code:xml}
> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
>                       http://maven.apache.org/xsd/settings-1.0.0.xsd">
>   <localRepository/>
> </settings>
> {code}
> When I run a build with Maven 3.8.6, everything works as I would expect and by default the {{~/.m2/repository}} is chosen.
> However, if I build with Maven {{{}4.0.0-alpha-3{}}}, it chooses the _current working directory_ as the root directory for the local repository. So I end-up with directories like {{{}aopalliance{}}}, {{{}avalon-framework{}}}, etc., next to the {{{}pom.xml{}}}.
> If I remove the empty element {{<localRepository/>}} from the {{{}settings.xml{}}}, then {{~/.m2/repository}} is chosen and it works the same as in Maven 3.x.
> I was doing some quick testing and git bisecting and assuming I did not mess anything up, the commit causing this behavior is [https://github.com/apache/maven/commit/2a9f39336cec1d8e52d30cc48503d51ed8672536] - MNG-7553 New clean API with immutable model ([#703|https://github.com/apache/maven/pull/703])
> (and it's huge, so I haven't yet looked in detail at the changes).
> I am not 100% sure this is a bug, but it is at least a difference in behavior comparing to Maven 3.x.
>  
> Edit: I also tried with {{{}-f <path-to-pom.xml>{}}}, so the local repository root really is {{{}<current-working-dir>{}}}, not {{<project-dir>}} (even if they are the same usually).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)