[ 
https://issues.apache.org/jira/browse/MNG-8162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17856539#comment-17856539
 ] 

Matthias Bünger edited comment on MNG-8162 at 6/20/24 4:02 PM:
---------------------------------------------------------------

As already written in Slack I support this idea as a step (Maven 4) into the 
direction to enforce (Maven 5) a structure following the maven default 
project/module convetion. With the more detailed possibilites to define the 
project's root (see #MNG-7038) I'm convinced this will reduce difficult / 
problematic situations resulting in an overall easier / more comprehensible 
usage of Maven, esp. with plugins which allow file-based/file-related 
configuration (e.g. PMD-Plugin).


{code}
[WARN] This maven project has modules relative to the parent directory 
(<module>../{..}</module>. This is an invalid configuration and will be 
unsupported in future releases. To fix, move all descendants of a pom project 
to its directory, making it a direct descendant.
{code}

The beginning of the last sentence sounds a bit clumsy to me - would suggest to 
change it to

{code}
To fix this issue, move all descendants of a pom project to its directory, 
making it a direct descendant.
{code}

Maybe we can also add a link to an example... which aehm does not exists?

Thought it would be in the [User 
Centre|https://maven.apache.org/users/index.html], but is not. Neither on 
[standard directory 
layout|https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html]
 nor [Guide to working with multiple module 
projects|https://maven.apache.org/guides/mini/guide-multiple-modules-4.html] 
the default hierarchie is shown :O


was (Author: JIRAUSER302100):
As already written in Slack I support this idea as a step (Maven 4) into the 
direction to enforce (Maven 5) a structure following the maven default 
project/module convetion. With the more detailed possibilites to define the 
project's root (see #MNG-7038) I'm convinced this will reduce difficult / 
problematic situations resulting in an overall easier / more comprehensible 
usage of Maven, esp. with plugins which allow file-based/file-related 
configuration (e.g. PMD-Plugin).


{quote}
[WARN] This maven project has modules relative to the parent directory 
(<module>../{..}</module>. This is an invalid configuration and will be 
unsupported in future releases. To fix, move all descendants of a pom project 
to its directory, making it a direct descendant.
{quote}

The beginning of the last sentence sounds a bit clumsy to me - would suggest to 
change it to

{quote}
To fix this issue, move all descendants of a pom project to its directory, 
making it a direct descendant.
{quote}

Maybe we can also add a link to an example... which aehm does not exists?

Thought it would be in the [User 
Centre|https://maven.apache.org/users/index.html], but is not. Neither on 
[standard directory 
layout|https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html]
 nor [Guide to working with multiple module 
projects|https://maven.apache.org/guides/mini/guide-multiple-modules-4.html] 
the default hierarchie is shown :O

> Maven should warn about modules relative to parent directory
> ------------------------------------------------------------
>
>                 Key: MNG-8162
>                 URL: https://issues.apache.org/jira/browse/MNG-8162
>             Project: Maven
>          Issue Type: Task
>          Components: Core
>            Reporter: Benjamin Marwell
>            Priority: Major
>
> Maven should warn if a pom project references modules which are not direct 
> descendants, e.g.
> {code:html}
> <module>../other</module>
> {code}
> h2. Rationale
> Given this situation:
> * the repository root does not contain the root pom.xml 
> * A subdirectory contains the "root" pom.xml (e.g. ./Build/pom.xml)
> * Maven must be called either via {{mvn -f Build}} or {{cd Build && mvn}}
> Then it is hard to determine the root:
> * Is it in the VCS clone/checkout root?
> * Is it in the first common ancestor? Maybe it is in 
> {{project/dev/impl/Build}} ?
> * Is root=true a valid tag in either of these cases?
> * what if you call maven from even yet  a higher directory?
> * What if both .mvn directores and the root tags are present?
> * What if there are multitple .mvn directories (lets say in repo root, and in 
> ./project/dev/impl and in ./project/dev/impl/Build)?
> In any of those cases and combinations of those, Maven should print a warning
> h2. Suggested warning
> {code}
> [WARN] This maven project has modules relative to the parent directory 
> (<module>../{..}</module>. This is an invalid configuration and will be 
> unsupported in future releases. To fix, move all descendants of a pom project 
> to its directory, making it a direct descendant.
> {code}
> h2. Checks
> Should be included in the new self-check
> h2. Suggested deprecation
> Maven 5 should not work under such circumstances
> h2. Backports
> Might be a candidate for backporting to 3.9.
> h2. Documentation
> The docs should clarify which "root" takes precedence (and why).



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

Reply via email to