Генерация тестового кода Ant javadoc не может найти символ из кода src - PullRequest
0 голосов
/ 09 августа 2011

В моем проекте у меня есть папка src с исходным кодом приложения и папка test с исходным кодом тестов приложения.

В моей сборке Ant я хотел бы отделить генерацию javadoc от этих исходных кодов. Для генерации javadoc кода src проблем нет, но для генерации javadoc кода тестов у меня возникла проблема, потому что в тестовом коде используется код src.

Моя задача Ant для генерации Javadoc выглядит так:

<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 я поместил jar из junit, чтобы избежать ошибки, связанной с особенностями аннотации для junit во время генерации javadoc. Этот файл содержится в $ {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 в classpath, чтобы избежать этих предупреждений, но без включения исходного кода javadoc в тестовый код javadoc.

Или может быть способом отключить эти предупреждения, поскольку многословная опция задачи javadoc в false не отключает эти предупреждения.

1 Ответ

1 голос
/ 09 августа 2011

Итак, кто-то знает способ включения классов src в classpath, чтобы избежать этих предупреждений, но без включения исходного кода javadoc в тестовый код javadoc.

Убедитесь, что классы, на которых ваштесты зависят от пути к классам.Возможно, вы захотите сделать вашу цель генерации javadoc зависимой от цели, которая компилирует код из src и создает файл jar.Затем убедитесь, что classpath, на который ссылается refid classpath-test, содержит этот jar.

...