JJ *_*kar 4 java maven querydsl
如何仅通过指定包名称来生成QueryDsl Q-Class?鉴于源类位于我的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>
Run Code Online (Sandbox Code Playgroud)
和:
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0.4</version>
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情:
<configuration>
<packageName>com.my.package</packageName>
<sourceFolder>target/generated-sources</sourceFolder>
<targetFolder>target/generated-sources/querydsl</targetFolder>
</configuration>
Run Code Online (Sandbox Code Playgroud)
...会生成类:
由于没有常见的JPA或JDO注释,并且我无法访问源文件,因此我无法将任何com.mysema.query.apt.*Processors用于maven-apt-plugin <processor>.
编辑1:添加了完整的maven-apt-plugin配置.
编辑2:
- 我能够通过maven命令行偶尔使用maven-apt-plugin工作,但不是通过扩展AbstractQuerydslProcessor来查找@XmlType注释类而不是Eclipse/STS.双代码生成无疑是不理想的解决方案.
答案是使用Timo在此概述的策略生成Q-class:https://github.com/mysema/querydsl/issues/196
在我的模块中package-info.java:
@QueryEntities({ com.remote.module.Foo.class,
com.remote.module.Bar.class })
package com.my.local.module.querydsl;
import com.mysema.query.annotations.QueryEntities;
Run Code Online (Sandbox Code Playgroud)
Maven POM中的插件执行:
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<executions>
<execution>
<id>apt-maven-plugin-remote-module-QuerydslAnnotationProcessor</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<showWarnings>true</showWarnings>
<!-- genereate Q-classes specified in package-info.java -->
<processor>com.mysema.query.apt.QuerydslAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10021 次 |
| 最近记录: |