最近继续Maven打包,一个项目又遇到问题了。
提示Javadoc失败,但是没有 Eclipse控制台乱码了,看不清具体原因。
瞎猜,太费时间了。
首要问题是解决乱码。
可能是因为用的Windows系统,系统编码默认是GBK吧,控制台用UTF-8 有时不太好使,用GBK吧。
乱码解决之后,错误如下:
[ERROR] /D:/GitRepos/jtn-common-web/src/main/java/cn/fansunion/report/ppt/CreateTablePPT.java:[34,26] ??ASCII???????
看样子是编码错误,打包用的说UTF-8,提示ASCII 不就是GBK吗。
用记事本打开,发现编码确实是 UTF8。
再用Nodepad打开,编码显示是:UTF-8-BOM,不太清楚怎么产生“BOM”这个问题了,很常见的一个问题。
改成UTF-8,再试,不行额。
新建同名文件,复制粘贴原来的内容,替换,还是不行。
真难受。
wen提示,其它代码含有中文 不会出错呢?
这些报错文件,很特殊吗?
只好,暂时回避这个问题。
2个老代码,先排除source code。
不服输。
对比下正常打包的项目:
<properties>
<!-- Plugin的属性 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
增加了1个编码属性,之前遇到过这个问题,枚举类的中文最后乱码。
加了之后,依然报错。
忧伤呀。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (default) on project jtn-common-web: MavenReportException: Error while creating archive:
[ERROR] Command line was: D:\Soft\javaSE1.8\jdk1.8\jre\..\bin\javadoc.exe @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in 'D:\GitRepos\jtn-common-web\target\apidocs' dir.
根据这个错误提示:在'D:\GitRepos\jtn-common-web\target\apidocs'目录,看到了 maven给加的几个文件,
其中有个 javadoc.bat
|
通过这里,就看出问题了。
这个项目Maven结构有点怪,通过Maven更新,总是把src 作为 源代码目录。
只能手动添加 src/main/java src/main/resources作为 源代码目录。
这个问题,经常出现,还没有找到根本原因。
所以,只好正常解决 maven源代码目录问题,javadoc就可以了。
另外,Windows控制台执行javadoc输出 中文 没有乱码。
之前Eclipse控制台编码改为 GBK,下方展示的 也是 ??? 之类,估计依然乱码。
初步结论:Eclipse控制台 用UTF8,本身是没问题的。
/D:/GitRepos/jtn-common-web/src/main/java/com/jiutianniao/common/web/extension/spring/ObjectExcelView.java: 某些输入文件使用或覆盖了已过时的 API。
这个错误就正常显示了。
有问题的是Javadoc输出。
“���ڼ��س����main.java.cn.fansunion.report.excel.bigdata��Դ�ļ�...”
所以,把Eclipse编码改为 UTF8,尝试给javadoc传递参数。
尝试在Maven配置javadoc插件编码:
|
依然不行,崩溃啊。
参考网友答案
在使用IDEA生成Java Doc的过程中,可能会出现IDEA控制台输出中文乱码,即使我们在maven-javadoc-plugin插件中指定字符集为UTF-8,依然是乱码,这是因为Maven的默认平台编码是GBK。
解决办法:
在IDEA中,打开File | Settings | Build, Execution, Deployment | Build Tools | Maven | Runner在VM Options中添加-Dfile.encoding=GBK,切记一定是GBK。
设置JVM参数,看起来就有问题。果然还是不行,更乱了。
看了下Maven deploy目录下
target/apidocs目录下的options选项
“
-encoding
'UTF-8'
”
javadoc参数已经指定了。
感觉Maven 打包,控制台下javadoc 正常显示中文,难搞啊。
先弃坑了。
先把根本问题解决了:Maven工程的 源码结构。
发现有问题的项目,build设置不对啊
|
竟然写的是 src。
Maven默认的是
|
删除 自己的build,update maven,项目结构就正常了。
提示编译错误。
经常遇到的问题,Maven默认用JDK1.5编译级别,自己用的是JDK1.8.
手动设置下:
|
编译插件和源码。
更新之后,自动默认为JDK1.8,爽歪歪。
再重新,release发布,javadoc只有警告,不会再中断了。
到此,所有问题都搞定了。
总结
遇到问题,解决问题。
每一个报错,都是有原因的。
网上查找资料,一个个解决,项目中的 警告 报错 越来越少。
错误越少,项目越是稳定。
参考资料
Maven配置多源代码目录、多资源目录
https://blog.csdn.net/qq_36838191/article/details/82964522