Как сгенерировать Q-классы QueryDsl, указав только имя пакета? Учитывая, что исходные классы находятся в моей папке target/generated-sources, поскольку они являются продуктом других плагинов сборки (WSDL, XSD и т. д.).
Я пробовал использовать следующие плагины, но не могу найти правильную конфигурацию:
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-maven-plugin</artifactId>
<version>2.9.0</version>
<executions>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>${com.mysema.query.apt.ProcessorClass}</processor>
</configuration>
</executions>
и:
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0.4</version>
Я хотел бы сделать что-то вроде этого:
<configuration>
<packageName>com.my.package</packageName>
<sourceFolder>target/generated-sources</sourceFolder>
<targetFolder>target/generated-sources/querydsl</targetFolder>
</configuration>
... который будет генерировать классы:
- com.my.package.QFoo.java
- com.my.package.QBar.java
Поскольку нет общей аннотации JPA или JDO, и у меня нет доступа к исходным файлам, я не смог использовать ни один из com.mysema.query.apt.*Processors для <processor> maven-apt-plugin.
EDIT 1: добавлена полная конфигурация maven-apt-plugin.
EDIT 2: - мне удалось заставить maven-apt-plugin время от времени работать через командную строку maven, но не Eclipse/STS, расширив AbstractQuerydslProcessor для поиска @XmlType -аннотированные классы. Двойная генерация кода, по общему признанию, не является идеальным решением.