[ https://issues.apache.org/jira/browse/MNG-7760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17711298#comment-17711298 ]
Jeremy Landis commented on MNG-7760: ------------------------------------ closing will reopen, meant to be against site plugin. > 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)