记录使用idea构建出现错误:failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar——Java学习记录3
有次在使用idea开发工具构建项目的时候出现了错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project XXX: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - javadoc: XXX
...
[ERROR] Command line was: "XXX\jre\..\bin\javadoc.exe" @options @packages
...
[ERROR] Refer to the ganerated Javadoc files in 'XXX\target\apidocs' dir
...
直接贴出有效的方法,供大家参考:
偶然看到一篇博客:
参考链接:Intellij Idea打包工程时控制台显示乱码-CSDN问答
Intellij Idea打包工程时控制台显示乱码已经解决了,这主要是maven编译时编码问题导致的。
在Intellij --> File --> Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> Runner 配置中设置它的VM Options为:-Dfile.encoding=GBK(或者:-DarchetypeCatalog=internal -Dfile.encoding=GBK),就可以解决maven编译、打包时中文乱码的问题。
正好想起我在构建项目的时候也出现乱码的情况,因此尝试了这个方法。结果恰好也解决了我报错的那个问题,过程也尝试了上述的各种方法,最终解决问题,比较满意。
*********************************分割线*********************************
(补充)同样的问题可能在eclipse上面也存在
参考链接:Maven 执行Javadoc时控制台输出乱码问题 - Albert.Sun - 博客园 (cnblogs.com)
根据这位博主的方法,在构建项目时候 右键项目 --> run as --> run configuration --> Maven Build 选中你要构建的项目,在右侧窗口中的common标签页Encoding选择Other 手动改为GBK(跟本地mvn一致),也成功解决问题。
*********************************分割线*********************************
以下方式都一一尝试但是没有成功解决问题,也放出来,大家可以根据自己的情况尝试:
在网上查找了各种方法:
一、修改环境变量
将classpath的%JAVA_HOME%修改为绝对路径
参考链接:IntellIJ idea打包报错:javadoc生成文档时报错java.lang.IllegalArgumentException解决方案_天涯芳草-CSDN博客
解决方案:
把java环境变量配置:
CLASSPATH: %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
更改为CLASSPATH: C:\Program Files\Java\jdk1.8.0_74\lib;C:\Program Files\Java\jdk1.8.0_74\lib\tools.jar;
二、修改jdk1.8的配置或者maven的配置
经查得知,在JDK 8中,Javadoc中添加了doclint,而这个工具的主要目的是旨在获得符合W3C HTML 4.01标准规范的HTML文档,在JDK 8中,已经无法获取如下的Javadoc,除非它满足doclint:
- 不能有自关闭的HTML tags,例如
<br/>
或者<a id="x"/>
- 不能有未关闭的HTML tags,例如有
<ul>
而没有</ul>
- 不能有非法的HTML end tags,例如
</br>
- 不能有非法的HTML attributes,需要符合doclint基于W3C HTML 4.01的实现
- ......
三、安装maven终端,使用mvn命令构建
解决方案:打开终端,【前提是你的环境装了maven】
命令执行:
mvn clean install -DskipTests -Dmaven.javadoc.skip=true
...
也感谢上述各位博主的经验分享!