189 8069 5689

如何解决maven:java8下当javadoc有编译错误时无法生成.jar包的问题

本篇内容主要讲解“如何解决maven:java8下当javadoc有编译错误时无法生成.jar包的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决maven:java8下当javadoc有编译错误时无法生成.jar包的问题”吧!

为武山等地区用户提供了全套网页设计制作服务,及武山网站建设行业解决方案。主营业务为成都做网站、成都网站设计、成都外贸网站建设、武山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

之前一直在java 7下编译maven项目,遇到javadoc编译提示代码注释中有错误(比如连接无效),也能正常生成javadoc jar包。但最近将编译器换成java 8后,同样的命令执行,遇到javadoc编译错误,maven就中止执行,生成jar包失败了。

在stackoverflow上找到这篇文章,才搞明白原因:《Maven is not working in Java 8 when Javadoc tags are incomplete》

原来是java 8的DocLint新特性造成的:
java 8中javadoc提供了一个新特性,允许程序能检测到java 代码注释中的错误(之前的版本,javadoc调用方无法检测到代码注释中的错误),默认情况下这个特性是打开的,所以maven执行编译javadoc编译时遇到代码注释中有错误,就会抛出异常,并中止执行。

最简单的解决办法:升级maven-javadoc-plugin插件版本到3.0.0以上,并添加none参数禁用该特性
示例如下


    
        
        org.apache.maven.plugins
        maven-javadoc-plugin
        3.0.1
        
            package
            
            none
        

    


但实际测试发现,采用这种方式执行mvn javadoc:jar确实是有效的但在执mvn release:prepare做发布版本准备时,却没有生成javadoc jar 包,使用-Xdoclint:none代替doclint参数才算正常:


    
        
        org.apache.maven.plugins
        maven-javadoc-plugin
        3.0.1
        
            package
            
            -Xdoclint:none
        

    


改成这样后,在java 8下执行mvn release:prepare是正常了,但在java 7下会报错误:不支持的选项-Xdoclint:none。所以如果希望在java 7,java 8下都能正常执行release,需要使用profile来区分JDK版本。删除前面在build/plugins中添加的javadoc插件,改为在pom.xml中添加profiles,如下:


    ....
            
        
            doclint-java8-disable
            
            
                [1.8,)
            

            
                
                    
                        
                        
                            org.apache.maven.plugins
                            maven-javadoc-plugin
                            2.9
                            
                                
                                -Xdoclint:none
                            

                        

                    

                

            

        
    

参考资料
Maven is not working in Java 8 when Javadoc tags are incomplete
maven javadoc-mojo
java 8 doclint
DocLint is a new feature in Java 8
How to ignore Maven build erros due to JavaDoc with Java 8
--------------------- 
 

到此,相信大家对“如何解决maven:java8下当javadoc有编译错误时无法生成.jar包的问题”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


标题名称:如何解决maven:java8下当javadoc有编译错误时无法生成.jar包的问题
转载来源:http://cdxtjz.com/article/gescch.html

其他资讯