【问题标题】:Javadoc errors when building Ant project构建 Ant 项目时出现 Javadoc 错误
【发布时间】:2011-11-02 14:49:52
【问题描述】:

我正在尝试为我的项目编写一个 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;

我在 LogAlerter.Java 中导入了 log4j。这是我的 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>

【问题讨论】:

    标签: ant log4j javadoc


    【解决方案1】:

    尝试将类路径引用添加到您的 javadoc 任务:

    <javadoc packagenames="src" 
             sourcepath="${src.dir}" 
             destdir="${docs.dir}"
             classpathref="build.classpath">
    

    【讨论】:

      【解决方案2】:

      导入没问题,但请确保它在运行时可用于 JavaDoc 工具。 log4j.jar 应该出现在您的 build.classpath 中。

      像这样在docs 目标中使用classpathref

      <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}" classpathref="build.classpath">
      

      【讨论】:

        【解决方案3】:

        警告告诉您的是您没有为 javadoc 任务提供完整的类路径。尝试在你的编译任务中添加一个类似的类路径引用,看看会导致什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-31
          • 1970-01-01
          • 2014-08-27
          • 2019-08-02
          • 1970-01-01
          • 2011-03-11
          • 2010-10-24
          • 2021-12-29
          相关资源
          最近更新 更多