- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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 将包含 javax.persistence.Entity 类的 org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final jar 添加到 compileClasspath。
启动 compileJava 任务时出现错误:caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity at com.querydsl.apt.jpa.JPAAnnotationProcessor.createConfiguration(JPAAnnotationProcessor.java:37)
不明白为什么注解处理器不能加载这个类。
最佳答案
以防其他人正在搜索。这是我的完整解决方案(基于您的回复)。重要的部分是net.ltgt.apt*
也在 Eclipse 中激活代码生成的插件,以及最后三个 querydsl 依赖项。
buildscript {
ext {
springBootVersion = '2.0.5.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
plugins { // activates the automatic code generation
id 'net.ltgt.apt' version '0.18'
id 'net.ltgt.apt-eclipse' version '0.18'
}
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
group = 'com.test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
configurations {
providedRuntime
}
dependencies {
runtimeOnly 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-starter-webflux'
// querydsl
annotationProcessor 'com.querydsl:querydsl-apt:4.1.3:jpa'
annotationProcessor 'org.springframework.boot:spring-boot-starter-data-jpa' // needed because the query dsl annotation processor doesn't recognize javax.persistence.Entity
compile 'com.querydsl:querydsl-jpa:4.1.3'
}
关于gradle - AnnotationProcessor 和依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50537096/
我正在使用 gradle/querydsl 和 JPA 2.1。 我想使用 APT (QEntities) 生成 querydsl 元数据。 为此,我使用了 gradle-apt-plugin 和 g
以下是我的 build.gradle 文件。我的项目在本地编译(IntelliJ-IDEA 是我的 IDE),但是当我将它推送到 GitHub 时, travis-ci 构建失败。我的 gradle
我写了一个注解处理器。用户可以传递一个选项作为处理器的参数。我也可以在我的注解处理器中读取这个参数。到目前为止一切顺利,一切都按预期进行! 但是,我收到编译器的警告,即传递给注解处理器的选项尚未被任何
我有两个带有方法的类,我想将两个类的方法合并到一个类中。 @Service("ITestService") public interface ITest1 { @Export void m
我按照 JMH 主页中的说明创建了 maven 原型(prototype)项目。我收到“注释生成器抛出异常。java.lang.NullPointerException”当我对生成的项目进行 mave
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Plugging in to Java compilers 编辑 - 这似乎是 Plugging in to Jav
基于 ButterKnife lib,我升级到新版本8.5.1。我用过 compile 'com.jakewharton:butterknife:8.5.1' annotationProcesso
对于插桩测试,我有一个创建 TestComponent 的 TestApplication,但不再生成该文件(Error:/xxx/TestApplication.java: 16: 无法解析 imp
我有一个使用 AnnotationProcessor 处理的类。在此过程中,我有一个 javax.lang.model.element.Element 实例,我可以在其中通过 .getSimpleNa
我希望创建一个注释,它将测试带注释的类型(可能是接口(interface))及其所有子类型,如果任何测试的类型是没有无参数构造函数的具体类,则抛出编译错误。我能够测试实际带有注释的类型,没问题。测试子
这是我在向我的 android 项目添加新的 gradle 依赖项时遇到的以下错误。而且这个错误不是项目特定的。如果我在任何其他 android 项目中添加插件,我会遇到同样的错误 Error whi
我在 IntelliJ IDEA 中创建了简单的注释处理器,添加了注释配置文件,但我不明白如何运行它。我知道注释处理器在编译时工作,但我没有在输出中看到来自注释处理器信使的任何消息。 public c
我正在使用 java 注释处理器在编译时生成其他类。使用 gradle 构建时效果很好,但我无法让 IntelliJ 识别生成的类。每当我尝试在 IntelliJ 中构建项目时,它都会出错,说它找不到
我正在尝试导入 数据库流正如 their readme 中的建议.修改项目级 build.gradle 文件并尝试同步后,出现以下错误: Error:(27, 0) Could not find me
我正在寻找一种方法来检测一个类是否是从注释处理器中的另一个类/接口(interface)继承的。由于注释处理器在源代码上运行而不是运行时,因此无法使用 reflation API,我找到的唯一方法是:
我需要创建一个自定义注释,当该注释应用于方法时,会根据各种检查检查并验证输入参数(原始和非原始)。如果检查失败应该直接返回错误消息。 在搜索时,我在创建自定义注释时遇到了 AbstractProces
我正在编写自定义 AnnotationProcessor 并且需要访问在执行期间设置为 javac 的选项:例如-详细,-s,-d 正确的做法是什么?我不认为解析“sun.java.command”系
问题: 是否可以通过注释处理器访问使用 @Target(ElementType.TYPE_USE) 注释注释的元素? 是否可以通过注解处理器访问注解类型边界? 非常感谢我错过的相关文档链接。 上下文:
我只想在我的系统应用程序中使用 bufferknife 和 drag2,我已经使用命令 mm 构建了我的应用程序。 我已经尝试了所有可能的方法,但都失败了!我只通过谷歌搜索找到了以下 Android.
我正在使用 AndroidAnnotaion,但由于 Android Studio 2.3 和 Gradle 2.3.0,他们说 android-apt 已过时。而 annotationProcess
我是一名优秀的程序员,十分优秀!