无法使用Java8构建Hadoop 2.4.1

功绩

问题很简单。我正在尝试使用以下命令在Windows上编译Hadoop2.4.1:

mvn clean package -Pdist,native-win -DskipTests -Dtar

使用JAVA_HOME=C:\Program Files\Java\jdk1.7.0_51,效果很好。

使用JAVA_HOME=C:\Program Files\Java\jdk1.8.0_05,它不会并且不会给我以下错误:

[INFO] Apache Hadoop Annotations ......................... FAILURE [4.086s]
---
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8
.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Er
ror while creating archive:
[ERROR] Exit code: 1 - C:\hadoop-src\hadoop-common-project\hadoop-annotations\sr
c\main\java\org\apache\hadoop\classification\InterfaceStability.java:27: error:
unexpected end tag: </ul>
[ERROR] * </ul>
[ERROR] ^
[ERROR]
[ERROR] Command line was: "C:\Program Files\Java\jdk1.8.0_05\jre\..\bin\javadoc.
exe" -J-Dhttp.proxySet=true -J-Dhttp.proxyHost=proxy -J-Dhttp.proxyPort=3128 @op
tions @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in 'C:\hadoop-src\hadoop-common-pro
ject\hadoop-annotations\target' dir.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
xception
[ERROR]

如前所述,我仅更改了JAVA_HOME错误消息似乎表明该错误与代理相关,但我不知道为什么。

在两种情况下,我都有

C:\hadoop-src>javac -version
javac 1.8.0_05

C:\hadoop-src>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

你们对发生的事情有什么线索吗?

斯图尔特·马克斯

这是javadoc报告的错误。Java 8中的javadoc版本比早期版本中的Javadoc版本严格得多。现在,如果它检测到认为无效的标记,则将发出错误信号,包括在不希望出现的结束标记的情况下。

要关闭javadoc中的此检查功能,请将-Xdoclint:none标志添加到javadoc命令行中。有关如何在Maven环境中执行此操作的信息,请参阅Stephen Colebourne的博客主题。具体来说,添加

<additionalparam>-Xdoclint:none</additionalparam>

到适当的属性或配置文件。

不过,有几件事很奇怪。文件当前(主干)版本似乎</ul>在正确的位置带有结束标记。文件历史记录表明之前丢失的end标签是最近才添加的,但是它似乎在Hadoop 2.4中。JDK 8u5 javadoc可以成功处理此文件,而不必抑制任何错误。

是否在添加了以前丢失的</ul>结束标签的地方应用了补丁,但由于将结束标签已添加到原始源中,所以现在是多余的?多余的结束标记将导致javadoc失败,并显示此错误。

更新

我一直在寻找错误的分支。文件2.4.1版本显然带有一个额外的</ul>结束标签。我对错误补丁的猜想是正确的。主干上文件的历史记录显示,HADOOP-8059在2012年6月添加了许多javadoc注释。这些新添加项缺少</ul>结束标记。2014年1月,HADOOP-10320添加了丢失的结束标签。HADOOP-10320的补丁已移植到2.4.1分支,但是HADOOP-8059的新javadocs没有移植,导致标记格式错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

逐步添加DIV ... 1、2、3、4、8、16

在Java中找到1=>5的函数;2=>4;3=>3; 4=>2;5=>1;6=>7;7=>6;

使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

生成系列1,2,1,3,2,1,4,3,2,1,5,4,3,2,1

为什么Unix权限系统使用1 2 3 4 ...值而不是1或0?

用二进制编写的集合{1,2,4,8,..,2 ^ n}的DFA

创建一个向量:c(1,2,4,2,2) 并使用 rank 变量返回 c(1,2,5,2,2)

使用Log4j Bridge从log4j1迁移到log4j2

如何在SAS中比较均值(µ1 + µ2 + µ3)/ 3 =(µ3 + µ4)/ 2:使用'ESTIMATE'或'CONTRAST'?

重新排列 PHP 数组,将 1、2、3、4、5、6、7、8、9 重新排序为 1、4、7、2、5、8、3、6、9

如何重复序列:r中的1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10,7,8,9,10

R for回路向量1,2,2,3,3,3,4,4,4,4,..,10,

Bootstrap 6-4-2-1列

RuntimeError:对于4维权重[32、4、8、8],需要4维输入,但取而代之的是大小[1、4]的2维输入

在用户键入(1 2 3 4 5 6 7 8 9 10)时无法显示正确的最大值

Java将字符串转换为数组“[1,2,3,4,5,5]”到[1,2,3,4,5,5]

创建序列0、0、0、0、0、1、1、1、1、1、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4 ,带有seq()的4

将1,2,3,4,5,6,8,10,11显示为1-6,8,10-11

如何使用张量流将 [1,2,3,4,5,6] 重塑为 [[1,3,5],[2,4,6]]?

将 2 个 4 位数字存储在 1 个 8 位数字中

将数组的元素添加为a [0],a [1] + a [2],a [3] + a [4] + a [5],a [6] + a [7] + a [8] + a [9] ...等等

1 2 3 4 7 8 9 p和退格键不起作用

while循环| 反向计数n .... 8 7 6 5 4 3 2 1

Javascript - 找到 1-4-7, 2-5-8, 3-6-9 iretartions?

C中{0,1,2,3,4,5,6,7,8,9}外的条件

无法将“{1, 2 ,3, 4, 5, 6}”转换为 list<int> C++?

通过模数为c的4 3 2 1 4 3 2 1 ...循环

rotateArray 例如 1 2 3 4 >>> 2 3 4 1 給定函數