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

ASF GitHub Bot commented on MNG-7038:
-------------------------------------

gnodet commented on PR #840:
URL: https://github.com/apache/maven/pull/840#issuecomment-1287888704

   > I think I ran into a chicken-egg type of problem.
   > 
   > * I would like to have the project.topdir available as a variable that can 
be used in the pom.xml to pin point things. This implies it must be available 
before that point.
   > * Also I would like to base loading a project specific settings.xml opon 
this variable ([MNG-5659](https://issues.apache.org/jira/browse/MNG-5659))
   > * Yet the only viable way to determine it is after the pom.xml has been 
parsed and at least the parents are available.
   > 
   > I would like to have some suggestions on how to handle this is.
   
   This would have to be computed inside the `DefaultModelBuilder`.  The models 
are built in two phases.  After the first phase is done, all models have been 
read and the needed information should be available.  So the best place may be 
(without much thoughts) in the `DefaultModelBuilder`, just before the model 
interpolation.  The parents (and all models from the reactor) should be 
available on the model building request.  The relevant code is 
[here](https://github.com/apache/maven/blob/24329561fc9092ba7a10aa9c7a378b392e0d9301/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java#L883-L886).




> Introduce public property to point to a root directory of (multi-module) 
> project
> --------------------------------------------------------------------------------
>
>                 Key: MNG-7038
>                 URL: https://issues.apache.org/jira/browse/MNG-7038
>             Project: Maven
>          Issue Type: Improvement
>            Reporter: Envious Guest
>            Priority: Major
>             Fix For: Issues to be reviewed for 4.x
>
>
> This is a request to expose a property *maven.multiModuleProjectDirectory* 
> which is currently internal (or introduce a brand new one with analogous 
> functionality).
>  * For a single-module project, its value should be same as *project.basedir*
>  * For multi-module project, its value should point to a project.basedir of a 
> root module
> Example:
> multi-module // located at /home/me/sources
>  +- module-a
>  +- module B
> Sample multi-module/pom.xml: 
> {{<project>}}
>  {{    <parent>}}
>  {{        <groupId>com.acme</groupId>}}
>  {{        <artifactId>corp-parent</artifactId>}}
>  {{        <version>1.0.0-RELEASE</version>}}
>  {{    </parent>}}
>  {{    <groupId>com.acme</groupId>}}
>  {{        <artifactId>multi-module</artifactId>}}
>  {{        <version>0.5.2-SNAPSHOT</version>}}
>  {{    <modules>}}
>  {{        <module>module-a</module>}}
>  {{        <module>module-b</module>}}
>  {{    </modules>}}
>  {{</project>}}
> The property requested should return /home/me/sources/multi-module, 
> regardless of whether it's referenced in any of the child modules (module-a, 
> module-b) or in multi-module.
> Note that multi-module itself has parent (e.g. installed in a local 
> repository), so the new property should be smart enough to detect it and 
> still point to /home/me/sources/multi-module instead of the local repository 
> where the corp-parent is installed.
> The use-case for such a property could be to have a directory for combined 
> report of static analysis tools. Typical example - jacoco combined coverage 
> reports.



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

Reply via email to