我正在扩展我公司的 ant 构建脚本,以添加我们想要在某些情况下构建的特殊模块。我编写了一个 ant 脚本,它指向我知道其余代码库的已编译类文件的位置,因为它们在构建过程的早期进行了编译。我 100% 确定这些文件位于此位置。
但是,每当我尝试编译此模块时,类路径引用都看不到这些类,并且我收到一堆“包不存在”和“找不到符号”错误。我做错了什么?
这是我的构建脚本代码:
<property name="classpath" value="${dir.dev}/out/production/Main"
<path id="pfClasspath">
<fileset dir="${classpath}">
<include name="**/*.class"/>
</fileset>
<fileset dir="${dir.dev.lib}">
<include name="**/*.jar" />
</fileset>
<fileset file="${lib.json}" /> <!-- TODO try removing this -->
</path>
<target name="compile" depends="prepare">
<javac source="1.7" classpathref="pfClasspath" srcdir="${dir.project}/src" destdir="${dir.project.build.classes}" />
</target>
“classpath”属性指向的目录 100% 包含项目其余部分的所有类文件。该级别相当于源端的“src”目录,其中紧接着是 com/companyName/etc... 文件夹。
我的代码包含对此位置编译的类的引用。然而蚂蚁还没有找到它们。
尝试
<path id="pfClasspath">
<pathelement path="${classpath}" />
...
</path>
相反。指定类路径并不意味着指定类路径上的每个类文件,这就是您使用
<path>
定义 <fileset>
元素时所做的事情。