Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven Can';t使用Java8构建Hadoop 2.4.1_Maven_Hadoop_Java 8 - Fatal编程技术网

Maven Can';t使用Java8构建Hadoop 2.4.1

Maven Can';t使用Java8构建Hadoop 2.4.1,maven,hadoop,java-8,Maven,Hadoop,Java 8,问题很简单。我正在尝试使用以下命令在windows上编译Hadoop2.4.1: mvn clean package -Pdist,native-win -DskipTests -Dtar 使用JAVA\u HOME=C:\Program Files\JAVA\jdk1.7.0\u 51,它可以正常工作 对于JAVA\u HOME=C:\Program Files\JAVA\jdk1.8.0\u 05,它不起作用,并且失败,给出以下错误: [INFO] Apache Hadoop Annota

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

mvn clean package -Pdist,native-win -DskipTests -Dtar
使用
JAVA\u HOME=C:\Program Files\JAVA\jdk1.7.0\u 51
,它可以正常工作

对于
JAVA\u HOME=C:\Program Files\JAVA\jdk1.8.0\u 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]


你们有什么线索吗?

这是javadoc报告的错误。Java8中的javadoc版本比早期版本严格得多。现在,如果它检测到它认为无效的标记,包括不需要的结束标记,它就会发出错误信号

要在javadoc中关闭此签入,请将
-Xdoclint:none
标志添加到javadoc命令行。有关如何在maven环境中执行此操作的信息,请参阅本主题的。具体来说,添加

<additionalparam>-Xdoclint:none</additionalparam>
似乎将
结束标记放在正确的位置。表示之前缺少的end标记是最近添加的,但它似乎在Hadoop 2.4中。JDK 8u5 javadoc成功地处理了这个文件本身,而不必抑制任何错误

是否在某个地方应用了补丁,添加了以前丢失的
结束标记,该标记现在是多余的,因为结束标记已添加到原始源?额外的end标记将导致javadoc失败并出现此错误

更新


我看错树枝了。显然,有一个额外的
结束标签。我对一个错误补丁的猜测有点正确。主干上文件的历史记录显示,HADOOP-8059在2012年6月添加了大量javadoc注释。这些新添加的内容缺少
结束标记。2014年1月,HADOOP-10320添加了缺失的结束标签。HADOOP-10320的补丁被移植到了2.4.1分支,但是HADOOP-8059的新Javadoc没有被移植,导致了格式错误的标记

除了Stuarts的建议(我很难找到将additionalparam放在哪里):为了完全跳过javadoc生成,只需运行

mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true

没有我知道的补丁。我刚刚从apache网站下载了2.4.1源代码tarball(自6月21日以来,该版本一直没有修改)。我在src中检查了同一个文件,还有一些不一致的地方(缺少三个导入)。文档也不一样,确实有一个错误的
@fxm啊,我已经弄明白了。将更新答案。但是
-Xdoclint:none
的解决方法是相同的,除非您想直接破解源文件。当然,我一编译完所有内容就接受了您的答案:)。谢谢你多挖一点,很高兴知道!
<additionalparam>-Xdoclint:none</additionalparam>
mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true