【发布时间】:2012-01-09 00:30:36
【问题描述】:
我有一个 Java 项目,Parent,它依赖于一个 Child 子项目(以 JAR 的形式)。这个Child 依赖于库A 和B,它们与Child 捆绑在一起。 Parent 也使用 A 和 B(表示直接调用,而不是通过 Child 间接调用。我希望能够在我的项目中仅包含一次 A 和 B JAR。
当我编译 Parent 时,当它引用库 A 和 B 时,我得到一个 cannot find symbol。我相信这是因为Child 在编译时路径上,但由于某种原因其中的库不在。
我使用 ant 作为我的构建工具 - 我应该在我的 javac 标记中为嵌套 jar 做些什么特别的事情?现在在Parent's build.xml 我有:
<target name="compile" depends="clean, makedir">
<javac
srcdir="${src.dir}"
destdir="${build.dir}"
includeantruntime="false"
classpathref="build.classpath">
</javac>
</target>
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
这应该包括我的 lib 文件夹中存在的所有 jar,但它似乎没有包括 jar 中的所有 jar。
【问题讨论】: