Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.9.8
-
None
Description
There seems to be a problem with how Maven locates the `.mvn/extensions.xml` file if you run it at root. This appears to be breaking JRuby's user of Polyglot Maven when running in a Docker container (https://github.com/jruby/jruby/issues/7059)
To reproduce (see long output at https://github.com/jruby/jruby/issues/7059#issuecomment-2190953877):
- Be at the root of the filesystem
- Create `.mvn/extensions.xml` file that enables Polyglot Ruby
- Create a file `blah/pom.rb` containing a `#` that will be rejected as invalid pom XML.
- Execute the file with `mvn -f blah/pom.rb clean`
The expected behavior should be that it fills in a dummy group and artifact ID for the blank ruby pom file and executes it correctly.
Instead, it does not load Polyglot Ruby and attempts to parse the file as XML.
I suspect that work done in https://github.com/apache/maven/pull/94 for MNG-5889 may have introduced this bug. Prior to that issue, Maven would always look in the current directory for `.mvn` (which is root in this case), which would allow this scenario to work. The fix was to have Maven look first in the target directory and then in parent directories, but now it never looks at root (`/.mvn`).