用ant导出javadoc时的两个小问题

简介:
今天用ant生成javadoc时,出了两个小问题。
以下是最后完成版的build.xml。红色字体部分是与这两个问题相关的:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="fundation" default="2-javadoc" basedir=".">

    <!-- 定义属性 -->
    <property name="dir.javadoc" value="javadocs" />
    <property name="src.java" value="src" />

    <!-- 完整的classpath -->
    <path id="full-classpath">
        <fileset file="lib/*.jar" />
        <pathelement path="bin" />
         <!-- 三个外部jar包-->
        <pathelement path="D:/bea/jrockit_160_14_R27.6.5-32/lib/tools.jar" />
        <pathelement
            path="D:/Program Files/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar" />
        <pathelement
            path="D:/Program Files/eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar" />
    </path>


    <!-- 第一步,初始化 -->
    <target name="1-init">
        <delete dir="${dir.javadoc}" />
        <mkdir dir="${dir.javadoc}" />
    </target>

    <!-- 第二步,生成文档 -->
     <!-- 注意编码格式 -->
    <target name="2-javadoc" depends="1-init">
        <javadoc destdir="${dir.javadoc}" windowtitle="ATIP Project Class Library"
            use="yes" linksource="true" splitindex="yes"  encoding="UTF-8"
            docencoding="GBK" >
            <classpath refid="full-classpath" />
            <packageset dir="${src.java}" defaultexcludes="yes">
            </packageset>
        </javadoc>
    </target>
</project>

先看 <!-- 三个外部jar包--> 这个地方。如果不把这三个jar包引入classpath中,将出现这个问题:

[javadoc] java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc


上网查过之后发现,这个问题的原因是工程中引用了第三方jar包,而ant所用的classpath中没有相关定义。参见http://stackoverflow.com/questions/44853/why-am-i-getting-a-classcastexception-when-generating-javadocs
解决方法一目了然,把用到的第三方jar包引进来就行了。
关于这个问题,也有说法是把jdk下的lib/tools.jar引入ant的classpath中。我试了,没能解决这个问题。

再看<!-- 注意编码格式 -->和后面的编码格式定义。我的工程用的是UTF-8编码,但是如果我把编码、解码格式都定义为UTF-8,还是会出现乱码。我不知道原因。现有的这个配置是我枚举了编码、解码和GBK、UTF-8的可能组合之后找到的可行方案。用这个配置创建的javadoc文档没有再出现乱码。




本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/873962,如需转载请自行联系原作者

相关文章
|
1月前
|
Java Maven
使用javadoc生成maven项目的文档
本文介绍了如何在Maven项目中使用maven-javadoc-plugin插件来生成项目的JavaDoc文档,并展示了配置插件、编写代码、运行Maven命令以及查看生成文档的完整步骤。
35 0
使用javadoc生成maven项目的文档
|
1月前
|
Java Maven Spring
用javadoc生成springboot的文档
本文介绍了生成Spring Boot项目JavaDoc文档的步骤,包括创建项目、在pom文件中添加maven-javadoc-plugin插件配置、执行Maven命令生成文档,以及查看生成的文档结果。
19 0
用javadoc生成springboot的文档
|
6月前
|
Java API
Java包机制及JavaDoc
Java包机制及JavaDoc
|
11月前
javadoc-plugin
javadoc-plugin
49 0
|
自然语言处理 Java API
eclipse如何为java项目生成API文档、JavaDoc
eclipse如何为java项目生成API文档、JavaDoc
193 0
如何在IDEA中生成一个Javadoc文档
如何在IDEA中生成一个Javadoc文档
467 0
如何在IDEA中生成一个Javadoc文档
|
Oracle Java 关系型数据库
无法使用 javadoc 等命令?
谈到 Java 就离不开 JRE(Java Runtime Environment),JDK(Java Development Kit) 中包含了 JRE 和 JVM(Java Virtual Machine),所以我们一般直接安装 JDK,安装 JDK 首先肯定是去Oracle官网下载适合自己的开发版本,然后将 JDK 安装到自定义位置。
无法使用 javadoc 等命令?