【问题标题】:Ant javadoc generation of tests code cannot find symbol from src codeAnt javadoc生成测试代码无法从src代码中找到符号
【发布时间】:2011-10-23 09:30:15
【问题描述】:

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

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

我生成 javadoc 的 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

因此,有人知道一种方法可以在类路径中包含 src 类以避免这些警告,但不会在测试代码 javadoc 中包含源代码 javadoc。

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

【问题讨论】:

  • 你能显示编译器抱怨的源代码吗?这是import 声明吗?
  • 是的,编译器抱怨的来源是:import com.app.XClass;带有消息找不到符号符号:XClass。
  • 这与您在问题中显示的内容不同:-/
  • XClass 类的名称只是一个例子。我有几个错误,例如源代码中的不同类的错误。
  • 重点是这不是错误信息“包...”不存在。这似乎表明您使用过import com.app.SrcClass.*; 或类似名称。

标签: ant javadoc


【解决方案1】:

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

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

【讨论】:

  • 我将尝试使用 jar 生成源代码的解决方案,但实际上在 classpath-test 中已经有一个 pathelement 指向已编译的源类。它会产生与我认为没有的罐子相同的效果?
  • @sylsau,肯定会有同样的效果。我是这么回答的,因为一开始你写了In the classpath-test, I put jar from junit这还不够。
  • 请原谅我的精度泄漏。事实上,在 classpath-test 中,我很好地引用了之前任务中编译的源代码。
  • @sylsau 无论如何,如果您发布脚本的其余部分会有所帮助
  • 我在第一篇文章中完成了 Ant 脚本。
猜你喜欢
  • 1970-01-01
  • 2019-06-20
  • 2010-09-27
  • 2017-11-14
  • 2023-03-20
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2015-12-22
相关资源
最近更新 更多