我不确定这是关于ant的问题还是querydsl的 jpaannotationprocessor 。
我在build.xml中有以下目标:
<target name="querydsl" depends="-prepare">
<javac srcdir="${src.java.home}" classpathref="compile.classpath" includeantruntime="false">
<include name="de/foo/bar/database/model/**"/>
<compilerarg value="-proc:only"/>
<compilerarg value="-processor"/>
<compilerarg value="com.mysema.query.apt.jpa.JPAAnnotationProcessor"/>
<compilerarg value="-s"/>
<compilerarg value="${src.java.generated.home}"/>
</javac>
</target>
,我只想处理De/foo/bar/database/model/Model/下的类。
当我执行ant querydsl
时,我会从蚂蚁外部的类中获得编译错误,例如参数,例如
[javac] C:projectsmaincxlBackendsrcmainjavadefoobardatabaseservicecompanyCompanyServiceImpl.java:96: cannot find symbol
[javac] symbol : class QAccount
我试图用
明确排除此类<exclude name="de/foo/bar/database/service/company/CompanyServiceImpl.java"/>
,但我仍然遇到相同的错误。
编辑:在开始时,Ant写下:
[javac] Compiling 267 source files
这是DE/FOO/BAR/DATABASE/MODEL/DIRECTORY中的类的确切类数。
这些警告是由Javac打印的,因为Q类尚未可用。
根据Javac文档,您可以用-nowarn标志抑制警告。
升级到Java 7(从Java 6)升级后,问题消失了。