AnnotationProcessor和依赖项

时间:2018-05-25 21:31:30

标签: gradle querydsl apt

我正在使用gradle / querydsl和JPA 2.1。

我想使用APT(QEntities)生成querydsl元数据。

要做到这一点,我正在使用gradle-apt-plugin和gradle 4.7

在我的项目中,我使用:

配置了compileJava选项

compileJava { options.annotationProcessorGeneratedSourcesDirectory = file("$projectDir/src/generated2/java") }

在我的依赖项中,我添加了

compile 'org.springframework.boot:spring-boot-starter-data-jpa'" annotationProcessor "com.querydsl:querydsl-apt:$querydslVersion:jpa"

spring starter添加了org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final jar,其中包含javax.persistence.Entity类到compileClasspath。

启动compileJava任务时出现错误: caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity at com.querydsl.apt.jpa.JPAAnnotationProcessor.createConfiguration(JPAAnnotationProcessor.java:37)

不明白为什么注释处理器无法加载此类。

1 个答案:

答案 0 :(得分:6)

以防其他人正在搜索。这是我的完整解决方案(根据您的回复)。重要的部分是Private Sub bullet_movement_Tick(sender As Object, e As EventArgs) Handles bullet_movement.Tick Dim B As Integer For B = 0 To BulletNumberLeft Bullet_arrayLeft(B).Left -= 10 If Bullet_arrayLeft(B).Bounds.IntersectsWith(Left_boundary.Bounds) Then Me.Controls.Remove(Bullet_arrayLeft(B)) End If If enemycount >= 0 Then If Bullet_arrayLeft(B).Bounds.IntersectsWith(Enemyarray(enemycount).Bounds) Then Me.Controls.Remove(Bullet_arrayLeft(B)) Me.Controls.Remove(Enemyarray(enemycount)) enemycount = enemycount - 1 End If End If Next 插件(还可以在eclipse中激活代码生成),以及最后三个querydsl依赖项。

net.ltgt.apt*