Ошибки Javadoc при создании проекта Ant - PullRequest
4 голосов
/ 24 августа 2011

Я пытаюсь написать файл build.xml для моего проекта. Когда я запускаю build.xml как проект Ant, я получаю следующую ошибку:

D:\workspace\LogAlerter\src\com\j32bit\alerter\launcher\LogAlerter.java:9:  
error: package org.apache.log4j does not exist  
    [javadoc] import org.apache.log4j.Logger;

Я импортировал log4j в LogAlerter.Java. Вот мой файл build.xml:

<?xml version="1.0"?>
<project name="LogAlerter" default="main" basedir=".">
    <!-- Sets variables which can later be used. -->
    <!-- The value of a property is accessed via ${} -->
    <property name="src.dir"   location="src"   />
    <property name="build.dir" location="build" />
    <property name="dist.dir"  location="dist"  />
    <property name="docs.dir"  location="docs"  />
    <property name="libs.dir"  location="lib"  />

    <!--
        Create a classpath container which can be later used in the ant task
    -->
    <path id="build.classpath">
        <fileset dir="${libs.dir}">
            <include name="**/*.jar" />
        </fileset>
    </path>


    <!-- Deletes the existing build, docs and dist directory-->
    <target name="clean">
        <delete dir="${build.dir}" />
        <delete dir="${docs.dir}" />
        <delete dir="${dist.dir}" />
    </target>

    <!-- Creates the  build, docs and dist directory-->
    <target name="makedir">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${docs.dir}" />
        <mkdir dir="${dist.dir}" />
    </target>

    <!-- Compiles the java code (including the usage of library for JUnit -->
    <target name="compile" depends="clean, makedir" >
        <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" includeantruntime="false">
        </javac>
    </target>

    <!-- Creates Javadoc -->
    <target name="docs" depends="compile">
        <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
            <!-- Define which files / directory should get included, we include all -->
            <packageset dir="${src.dir}" defaultexcludes="yes">
                <include name="**" />
            </packageset>
        </javadoc>
    </target>

    <!--Creates the deployable jar file  -->
    <target name="jar" depends="compile">
        <jar destfile="${dist.dir}\LogAlerter.jar" basedir="${build.dir}">
            <manifest>
                <attribute name="Main-Class" value="LogAlerter.Main" />
            </manifest>
        </jar>
    </target>

    <target name="main" depends="compile, jar, docs">
        <description>Main target</description>
    </target>

</project>

Ответы [ 3 ]

7 голосов
/ 24 августа 2011

Попробуйте добавить ссылку на classpath в задачу javadoc:

<javadoc packagenames="src" 
         sourcepath="${src.dir}" 
         destdir="${docs.dir}"
         classpathref="build.classpath">
2 голосов
/ 24 августа 2011

Импорт в порядке, но убедитесь, что он доступен во время выполнения для инструмента JavaDoc. log4j.jar должен присутствовать в вашем build.classpath.

Используйте classpathref внутри цели docs следующим образом:

<javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}" classpathref="build.classpath">
2 голосов
/ 24 августа 2011

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

...