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

ASF GitHub Bot commented on HADOOP-18751:
-----------------------------------------

GauthamBanasandra commented on PR #5688:
URL: https://github.com/apache/hadoop/pull/5688#issuecomment-1606269212

   @ayushtkn , @goiri it seems like the issue that 
[HADOOP-8500](https://issues.apache.org/jira/browse/HADOOP-8500) and 
[HADOOP-13784](https://issues.apache.org/jira/browse/HADOOP-13784) aimed to fix 
isn't really solved. I'm finding that the javadocs are still lying under the 
`site` directory -
   
   
![image](https://github.com/apache/hadoop/assets/10280768/9a033582-a044-4d50-ad9c-2b69bd52c568)
   
   This is happening since the `destDir` is appended to `reportOutputDirectory` 
as the `maven-javadoc-plugin` documentation calls out.
   
   Upon using `../api` the javadoc generation fails on Linux since the parent 
`site` directory doesn't exist -
   
![image](https://github.com/apache/hadoop/assets/10280768/901252dd-2ed5-4a0a-bb27-ae65e9e380d0)
   
   However, the same works absolutely fine on Windows. I've thus used the same 
approach to fix the issue on Windows and have kept the `destDir` intact for 
Linux. Unfortunately, the `maven-javadoc-plugin` doesn't give us a way to 
handle this scenario. ☹️ 
   
   We'll have to pursue the correct fix for Linux separately.




> Fix incorrect output path in javadoc build phase
> ------------------------------------------------
>
>                 Key: HADOOP-18751
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18751
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 3.4.0
>         Environment: All
>            Reporter: Gautham Banasandra
>            Assignee: Gautham Banasandra
>            Priority: Critical
>              Labels: pull-request-available
>
> The javadoc build phase fails with the following error -
> {code}
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:javadoc-no-fork 
> (default-cli) on project hadoop-common: An error has occurred in Javadoc 
> report generation: Unable to write 'options' temporary file for command 
> execution: 
> H:\hadoop-common-project\hadoop-common\target\site\H:\hadoop-common-project\hadoop-common\target\api\options
>  (The filename, directory name, or volume label syntax is incorrect) -> [Help 
> 1]
> {code}
> As called out by the error message the path 
> *H:\hadoop-common-project\hadoop-common\target\site\H:\hadoop-common-project\hadoop-common\target\api\options*
>  is invalid.
> The culprit being - 
> https://github.com/apache/hadoop/blob/e9740cb17aef157a615dc36ae08cd224ce1672f0/hadoop-project-dist/pom.xml#L109
> {code}
> <reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
> <destDir>${project.build.directory}/api</destDir>
> {code}
> As per the [docs from 
> maven-javadoc-plugin|https://maven.apache.org/plugins/maven-javadoc-plugin/examples/output-configuration.html],
>  *destDir* attribute's value gets appended to that of 
> *reportOutputDirectory*. This implies that *destDir* must be a relative path, 
> although not called out in the documentation. Since this isn't the case here,
> # In Linux, this yields an unintended path (albeit a valid one) and doesn't 
> fail.
> # In Windows, it yields an incorrect path and thus fails since there's a 
> colon ( : ) for the drive letter in the middle of the incorrectly 
> concatenated path -
> H:\hadoop-common-project\hadoop-common\target\site\H {color:red}*:*{color} 
> \hadoop-common-project\hadoop-common\target\api\options
> Thus, fixing this would fix the build failure on Windows and put the docs in 
> the appropriate directory in Linux.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to