【发布时间】:2014-01-19 02:22:31
【问题描述】:
我正在制作一个图书馆。这个库中有 5 个不同的包。
src
|
----
|--- pkg.exceptions
|--- pkg.a
|--- pkg.b
|--- pkg.c
|--- pkg.main
libs
|
----someExternalJar.jar
项目设置如下 pkg.main 使用所有其他包中的类。 事实上,每个包都使用彼此的类。 我还为每个类编写了 javadoc cmets。 main 中的一个类使用 someExternalJar.jar。
我浏览了不同的文章,但无法理解 ANT 构建脚本。
到目前为止,我已经尝试过使用以下构建脚本...
编译源代码,生成 JavaDocs 并将应用程序打包到 JAR 存档中。
<property name="srcDir1" value="src/pkg/exceptions"/>
<property name="srcDir2" value="src/pkg/a"/>
<property name="srcDir3" value="src/pkg/b"/>
<property name="srcDir4" value="src/pkg/c"/>
<property name="srcDir5" value="src/pkg/main"/>
<property name="distDir" value="/dist"/>
<property name="buildDir" value="${distDir}/build" />
<property name="docDir" value="${distDir}/docs" />
<property name="library.dir" value="/lib" />
<path id="external.classpath">
<pathelement path="${library.dir}/someExternalJar.jar" />
</path>
<target name="clean">
<delete dir="${buildDir}"/>
<delete dir="${distDir}"/>
<delete dir="${deployDir}"/>
</target>
<target name="init" depends="clean">
<tstamp/>
<mkdir dir="${buildDir}"/>
<mkdir dir="${distDir}"/>
<mkdir dir="${deployDir}"/>
<mkdir dir="${reportDir}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${srcDir1}" destdir="${buildDir}" />
<javac srcdir="${srcDir2}" destdir="${buildDir}" />
<javac srcdir="${srcDir3}" destdir="${buildDir}" />
<javac srcdir="${srcDir4}" destdir="${buildDir}" />
<javac srcdir="${srcDir5}" destdir="${buildDir}" />
</target>
<target name="doc" depends="compile">
<javadoc packagenames="pkg.exception" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.exception docs">
<doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
<bottom><![CDATA[<i>MyAPI</i>]]></bottom>
</javadoc>
<javadoc packagenames="pkg.a" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.a docs">
<doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
<bottom><![CDATA[<i>MyAPI</i>]]></bottom>
</javadoc>
<javadoc packagenames="pkg.b" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.b docs">
<doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
<bottom><![CDATA[<i>MyAPI</i>]]></bottom>
</javadoc>
<javadoc packagenames="pkg.c" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.c docs">
<doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
<bottom><![CDATA[<i>MyAPI</i>]]></bottom>
</javadoc>
<javadoc packagenames="pkg.main" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.main docs">
<doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
<bottom><![CDATA[<i>MyAPI</i>]]></bottom>
</javadoc>
</target>
<!-- Create Java application archive (Jar) -->
<target name="archive" depends="doc">
<jar destfile="${distDir}/myapi.jar" basedir="${buildDir}" excludes="**/*Test.class,**/Runner.class" />
</target>
但我遇到了各种错误,例如无法从 pkg.exceptions、pkg.a 等中找到符号
有人可以帮忙吗?
【问题讨论】:
-
如果
src/pkg/exceptions使用src/pkg/a,反之亦然,单独编译它们可能不是一件容易的事(因为两者都应该在另一个之前构建)。您不能将所有内容合并到一个包中吗?或者你能避免每个包使用彼此的类吗?