ant javadoc生成的测试代码无法从src代码中找到符号

时间:2011-08-09 16:31:36

标签: ant javadoc

在我的项目中,我有一个src文件夹,其中包含应用程序的代码源和带有应用程序测试代码源的测试文件夹。

在我的Ant构建中,我想分离这些源代码的javadoc生成。对于src代码javadoc生成,没有问题但是对于测试代码javadoc生成,我遇到了问题,因为测试代码使用src代码。

生成javadoc的My Ant任务就是这样:

<path id="classpath-test">
  <pathelement path="." />
  <pathelement path="${testclasses.home}" />
  <pathelement path="${classes.home}" />
  <fileset dir="${lib.home}" includes="*.jar" />
  <fileset dir="${libtest.home}" includes="*.jar" />
</path>

<target name="compile" ... > // compiles src code of the project in ${classes.home}

<target name="compile-tests" depends="compile">
  <javac  srcdir="${test.home}"
        destdir="${testclasses.home}" 
        target="1.5"
        source="1.5" 
        debug="true"
    >
    <classpath refid="classpath-test" />
  </javac>

  <copy todir="${testclasses.home}">
    <fileset dir="${test.home}">
        <exclude name="**/*.java"/>
    </fileset>
  </copy>
</target>

<target name="generate-javadoc-tests" depends="compile-tests" >
        <javadoc sourcepath="${test.home}" packagenames="*"
        destdir="${test-javadoc.home}" verbose="false" 
        linksource="true" encoding="${encoding}">
        <classpath refid="classpath-test" />
    </javadoc>
</target>

$ {test.home}变量是测试文件夹。在classpath-test中,我从junit中放入jar以避免在javadoc生成期间有关junit的注释细节的错误。这个jar包含在$ {libtest.home}中。

当我生成javadoc时,我有几个关于来自测试文件夹的代码的警告,它使用src文件夹中的代码是正常的。错误是这样的:

[javadoc] E:\workspace\app\test\com\app\MyClass.java:9: package com.app.SrcClass does not exist
[javadoc] symbol  : class MyClass
[javadoc] location: class com.app.MyClass

所以,有人知道在classpath中包含src类的方法,以避免这些警告,但没有在测试代码javadoc中包含源代码javadoc。

或者可能是一种禁用这些警告的方法,因为javadoc task的详细选项为false不会禁用这些警告。

1 个答案:

答案 0 :(得分:1)

  

所以,有人知道在classpath中包含src类的方法可以避免   这些警告,但没有包含在测试中的源代码javadoc   代码javadoc。

确保测试所依赖的类位于类路径上。您可能希望使javadoc生成目标依赖于编译来自src的代码的目标并构建jar文件。然后确保refid classpath-test引用的类路径包含该jar。