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

Michael Osipov commented on MNG-7760:
-------------------------------------

Is this a Maven problem or a plugin problem?

> Site stage/deploy should respect 'child.site.url.inherit.append.path="false"' 
> and not use relativePath related to that parent
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-7760
>                 URL: https://issues.apache.org/jira/browse/MNG-7760
>             Project: Maven
>          Issue Type: Bug
>    Affects Versions: 3.9.1
>            Reporter: Jeremy Landis
>            Priority: Major
>
> All versions of maven have long been affected by this and there are many 
> tickets opened / closed claiming to have resolved or seem to be outstanding 
> for years with no resolution.  I believe they are mostly related.
> The 'child.site.url.inherit.append.path="false"' was added back in maven 
> 3.6.0 with claim to stop this behaviour but its never worked outside of 
> effective pom looks right IMO.  At least most platforms support that now 
> (artifactory was late in that game).
> Currently regardless of that setting, the maven site plugin doesn't respect 
> it or even look at it from what I can tell.  Its there in the debug tree but 
> the code doesn't appear to look at that to determine what it will do with 
> relativePath.
> So, if I have project example [https://github.com/hazendaz/base-parent] and I 
> happen to have those set (such as 
> https://github.com/hazendaz/base-parent/commit/58e9f8a7749a80e74e8197d5b90b17458cadb161),
>  then anything downstream using that parent which is unrelated I would expect 
> to adhere to the request and not attempt to use the super pom for its 
> calculations at all.  But it does not do so.
> I suspect areas of code problematic are getTopLevelProject(MavenProject) or 
> 'getDeployModuleDirectory'.  The later being where it matters with 
> 'relativePath' determined.
> The main issue is with multi module downstream projects.  Fixing this issue I 
> suspect would have immediate impact on being able to use the site plugin 
> directly and not need scm publish.  Scm publish tends to work for single 
> module but it still suffers from fact that the site plugin messes up the data 
> before it ever gets there.
> For example, if my project is 'somerepo.git', I would expect site:stage to 
> put the data in 'target/staging' as the documentation states it will do so.  
> It however does not, regardless of the above noted setting.  What it does 
> instead is determine that it needs the relative path to be '../somerepo.git' 
> just because it has a parent pom from some other project from same hosted 
> platform (gh-pages on github).  So the staging then puts that in 
> 'target/somerepo.git' instead.  So maven scm publish cannot even see that.  
> The site deploy fails to do it correctly as it completely changes out the 
> repo to deploy to and tries to go to the parent which in most cases like this 
> isn't related at all.  My base super pom for example is used by quite a 
> number of repos and they all have issues with site distributions as a result.
> So how can we make the site plugin actually respect 
> 'child.site.url.inherit.append.path="false"'?  Or any way to actually make 
> that easier like configure it to just stop doing that logic as unnecessary.  
> The pom settings IMO are over bearing as it is so a config option would be 
> far better and easier to implement.
> I've debugged this far enough to just keep changing the site plugins 
> determination on the relativePath to be './' which fixes the issue.
> IMO I don't think maven should even be touching items like this, its so hard 
> to understand the math as a result.  Thus why so many tickets get opened for 
> same thing in various different ways.  Over the years we have tried just 
> about everything to make this work and honestly the only thing that really 
> does currently is to drop maven from doing the site distribution entirely and 
> use gh-actions to do the same or other solutions on different platforms.  It 
> would be better IMO to use maven site plugin directly and/or with scm publish 
> if it consistently worked as documented.  Maybe a flag isn't even need, maybe 
> just fixing maven site plugin to stop going outside of the staging folder 
> would be a good step 1 as scm publish should be ok then.



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

Reply via email to