Java 使用带有groovy eclipse编译器的QueryDsl maven插件生成QueryDsl类

Java 使用带有groovy eclipse编译器的QueryDsl maven插件生成QueryDsl类,java,maven,jpa,groovy,querydsl,Java,Maven,Jpa,Groovy,Querydsl,我试图使用这里描述的替代方法从groovy实体生成querydsl类 我面临的问题是,这些类只有在我进行两次mvn编译/打包时才会生成 i、 在编译groovy类之前,应该生成具有顺序的类 否则我会得到编译错误 Groovy:unable to resolve class com.application.domain.QUser 我的pom.xml <build> <plugins> <plugin> <

我试图使用这里描述的替代方法从groovy实体生成querydsl类

我面临的问题是,这些类只有在我进行两次mvn编译/打包时才会生成

i、 在编译groovy类之前,应该生成具有顺序的类

否则我会得到编译错误

Groovy:unable to resolve class com.application.domain.QUser
我的pom.xml

 <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <compilerId>groovy-eclipse-compiler</compilerId>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-compiler</artifactId>
                    <version>2.9.1-01</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-batch</artifactId>
                    <version>2.3.7-01</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-eclipse-compiler</artifactId>
            <version>2.9.1-01</version>
            <extensions>true</extensions>
        </plugin>

        <plugin>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-maven-plugin</artifactId>
            <version>3.6.8</version>
            <executions>
                <execution>
                    <id>generate-querydsl-classes</id>
                    <goals>
                        <goal>jpa-export</goal>
                    </goals>
                    <phase>process-sources</phase>
                    <configuration>
                        <targetFolder>target/generated-sources/java</targetFolder>
                        <packages>
                            <package>com.application</package>
                        </packages>
                    </configuration>
                </execution>
            </executions>
        </plugin>
     </plugins>

maven编译器插件
3.3
groovy eclipse编译器
org.codehaus.groovy
groovy eclipse编译器
2.9.1-01
org.codehaus.groovy
groovy eclipse批处理
2.3.7-01
org.codehaus.groovy
groovy eclipse编译器
2.9.1-01
真的
com.mysema.querydsl
querydsl maven插件
3.6.8
生成querydsl类
jpa出口
过程源
目标/生成的源代码/java
com.com应用程序
我缺少什么?

您需要:

  • 编译Groovy源代码
  • 生成QClass的后处理类
  • 再次编译生成的qclass

        <plugin>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-maven-plugin</artifactId>
            <version>${querydsl.version}</version>
            <executions>
                <execution>
                    <id>generate-query-dsl-classes</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>jpa-export</goal>
                    </goals>
                    <configuration>
                        <targetFolder>target/generated-sources/java</targetFolder>
                        <packages>
                            <package>com.my.package</package>
                        </packages>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-query-dsl-classes</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <sourceFolder>target/generated-sources/java</sourceFolder>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    
    
    com.mysema.querydsl
    querydsl maven插件
    ${querydsl.version}
    生成查询dsl类
    进程类
    jpa出口
    目标/生成的源代码/java
    com.my.package
    编译查询dsl类
    进程类
    编译
    目标/生成的源代码/java
    

  • 嗨,它坏了。i、 它在编译groovy代码时失败(在导入中找不到QClasses)是的,我忘了提到,您需要在实际项目之前在单独的Maven模块中构建实体,该项目将“一些groovy实体”项目作为依赖项。