You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/05/25 19:38:00 UTC

[jira] [Commented] (HADOOP-18751) Fix incorrect output path in javadoc build phase

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

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

GauthamBanasandra commented on code in PR #5688:
URL: https://github.com/apache/hadoop/pull/5688#discussion_r1205934232


##########
hadoop-project-dist/pom.xml:
##########
@@ -106,7 +106,7 @@
           <source>${maven.compile.source}</source>
           <charset>${maven.compile.encoding}</charset>
           <reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
-          <destDir>${project.build.directory}/api</destDir>
+          <destDir>api</destDir>

Review Comment:
   Thanks for the review @ayushtkn. 
   
   > And I think it isn't going there either, it going inside site/apidocs rather than site/api
   
   The `hadoop-hdfs-httpfs` module doesn't inherit from `hadoop-project-dist`. So, its `maven-javadoc-plugin` configuration must be coming from somewhere else that points to `site/apidocs`. However, I couldn't find any relevant reference to `site/apidocs` in the Hadoop codebase (I'm thinking it's a default value that's kicking in here).
   
   > Can we not do ../api and maintain the behaviour? And I think it isn't going there either,
   
   The javadoc is getting generated inside `${project.build.directory}/api` for me when I use `../api` -
   
   ```powershell
   PS C:\Users\Gautham> Get-ChildItem -Recurse -Filter 'target\api' -Path H: -ErrorAction SilentlyContinue | foreach { $_.FullName } | where { (Get-ChildItem $_).Count -gt 0 }
   H:\hadoop-hdfs-project\hadoop-hdfs\target\api
   H:\hadoop-hdfs-project\hadoop-hdfs-client\target\api
   H:\hadoop-hdfs-project\hadoop-hdfs-rbf\target\api
   ```





> 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
>
> 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: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org