升级到 Gradle 5 后 Querydsl 注释处理器问题

2023-11-21

我有一个 gradle 脚本,它从 Mongo 带注释的实体生成 querydsl 类。到目前为止它可以正常工作,但是升级到 Gradle 5 后我遇到了一个问题:

* What went wrong:
Execution failed for task ':myproject-common:compileQuerydsl'.
Annotation processor 'org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor' not found

请在下面找到我的 gradle.build 脚本。有什么想法可能是错的吗?我读到 Gradle 5 中发生了变化,默认情况下在编译期间不使用注释处理器,并且应该添加注释处理器声明,但是当我将其添加到依赖项时,会发生相同的错误。

plugins {
    id 'org.springframework.boot' version '2.0.4.RELEASE'
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
repositories {
    mavenCentral()
}
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
jar {
    enabled = true
    baseName = 'myproject-common'
    version =  '0.0.1-SNAPSHOT'
}
// do no package commons into fat jar
bootJar {
    enabled = false
}
querydsl {
    library = 'com.querydsl:querydsl-apt:4.1.4'
    querydslSourcesDir = 'src/main/querydsl'
    springDataMongo = true
}
sourceCompatibility = 11.0
targetCompatibility = 11.0
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java', 'src/main/querydsl']
        }
    }
}
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.data:spring-data-mongodb")
    compile("org.springframework.boot:spring-boot-starter-data-rest")
    compile("org.springframework.boot:spring-boot-starter-security")
    compile("com.fasterxml.jackson.datatype:jackson-datatype-    jsr310:2.8.6")
    compile("com.google.guava:guava:23.0")
    compile("commons-io:commons-io:2.5")
    compile("org.aspectj:aspectjweaver:1.8.9")
    compile("org.apache.commons:commons-lang3:3.5")
    compile("commons-collections:commons-collections:3.2.2")
    compile("org.javamoney:moneta:1.1")
    compile("com.fizzed:rocker-runtime:1.2.0")
    compile("com.querydsl:querydsl-core:4.1.4")
    compile("com.querydsl:querydsl-mongodb:4.1.4")
    compile("com.querydsl:querydsl-apt:4.1.4")
    compile("com.codepoetics:protonpack:1.15")

    testCompile("org.springframework.boot:spring-boot-starter-test")
    testCompile("org.assertj:assertj-core:3.7.0")
}

这是我在不使用其他插件的情况下的 JPA 工作配置。 Gradle 5.3,openjdk 11.0.2。

plugins {
    id 'java-library'
}

ext {
    springBootVersion = '2.2.0.M1'
    queryDslVersion = '4.2.1'
}

dependencies {
    api(
            "com.querydsl:querydsl-jpa:$queryDslVersion"
    )

    implementation(
            platform("org.springframework.boot:spring-boot-dependencies:$springBootVersion"),
            'org.springframework.boot:spring-boot-starter-validation',
            'org.springframework.boot:spring-boot-starter-data-jpa',
            'org.liquibase:liquibase-core',
            'org.postgresql:postgresql'
    )

    annotationProcessor(
            platform("org.springframework.boot:spring-boot-dependencies:$springBootVersion"),
            'jakarta.persistence:jakarta.persistence-api',
            'jakarta.annotation:jakarta.annotation-api',
            "com.querydsl:querydsl-apt:$queryDslVersion:jpa"

    )
}

请注意注释处理器。它有后缀“:jpa”。也许这就是你所错过的。要为 mongodb 激活相同的功能,您应该添加“:morphia”后缀。

另请查看这两个依赖项:

'jakarta.persistence:jakarta.persistence-api'
'jakarta.annotation:jakarta.annotation-api'

这是针对此处描述的问题的解决方法:https://discuss.gradle.org/t/annotationprocessor-querydsl-java-lang-noclassdeffounderror/27107它们应该是注释处理器的传递依赖项,但现在还不是。也许您还必须包含一些对annotationProcessor 的mongo 依赖项。 生成的源位于\build\generated\sources\annotationProcessor\java\main

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

升级到 Gradle 5 后 Querydsl 注释处理器问题 的相关文章

随机推荐

  • 如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/ unzip)文件和文件夹?

    我知道类似的问题在这里被问了很多 但我对答案 甚至是问题 并不完全满意 主要目标是兼容性 它应该适用于尽可能广泛的 Windows 机器 包括XP Vista and 服务器2003 仍然占据大约 20 的 Windows 份额 并且生成的
  • 在Python中,如何获取列表中出现次数最多的内容,并以这种方式对其进行排序?

    3 3 3 4 4 2 将会 3 3 4 2 2 1 输出应按从最高计数到最低计数的顺序排序 在这种情况下 3比2比1 您可以使用Counter在 Python 2 7 中 这个食谱适用于 2 5 from collections impo
  • 从 gulp 中使用 browserify 时如何向浏览器公开“require”?

    当我有一个如下所示的文件 x js 时 x js module exports function n return n 111 我从命令行运行 browserify 如下所示 browserify r x js gt bundle js 我
  • WinForms 应用程序的常见漏洞

    我不确定这是否是主题 但它是如此特定于 NET WinForms 因此我相信它在这里比在 Security stackexchange 站点更有意义 此外 它与安全编码 我认为这与我在网站上看到的常见网站漏洞的任何问题一样切题 多年来 我们
  • UINavigationBar 在 AppDelegate.swift 中设置自定义阴影

    我想在整个应用程序的 UINavigationBar 底部设置一些阴影 这是我尝试过但不起作用的方法 func application application UIApplication didFinishLaunchingWithOpti
  • docker autobuild 与 git private 子模块

    我在 GitHub 上有两个私有存储库 名为dashboard and ui 我定义了ui作为 git 子模块dashboard 我将 docker 配置为自动构建dashboard关于特定分支上的每个更改 我读过这个文档https doc
  • 会话欺骗 (PHP)

    我正在用 PHP 编写一个包含布尔值的网站 SESSION logged in 这被设置为true当数据库中存在用户名和密码匹配时 我对会话相当陌生 只是想知道未注册 或者注册 用户是否可以通过将此布尔值设置为来绕过登录过程true 就像
  • 角度 $http POST 到 target="_blank"

    我需要做一个POST从 Angular 到 URL makeFile php它将根据其中提供的信息创建一个包含数据库查询内容的文件POST data PHP 强制浏览器打开一个保存对话框 而不仅仅是显示以下两行响应 header Conte
  • 确定在 Tkinter 中按下了哪个按钮?

    我在学习 Python 的同时制作了一个简单的小实用程序 它动态生成按钮列表 for method in methods button Button self methodFrame text method command self pop
  • PHP scandir() 和 htmlentities():字符集和/或特殊字符的问题

    我在用jquery文件树显示服务器上的目录列表以及目录中文件的下载链接 最近我遇到了包含特殊字符的文件的问题 test pdf 工作正常 t st pdf 不起作用 注意文件名中的 重音符号 在调试 jqueryFileTree 的 php
  • Python 中的字符串混淆

    我有一个必须传递给方法的密码字符串 一切正常 但我觉得以明文形式存储密码不太舒服 有没有办法混淆字符串或真正加密它 我知道混淆可以进行逆向工程 但我认为我至少应该尝试稍微掩盖密码 至少它对于索引程序或快速浏览我的代码的杂散眼来说是不可见的
  • 如何在android项目api 3(android 1.5)中使用Base64(自api 8(2.2)起包含在android中)?

    我需要在我的应用程序上使用 Base64 import android util Base64 但是 Base64 包含在 android 2 2 中 api lvl 8 然后 当我进行导入时 我收到此错误 Base64 无法解析 并且不让
  • 每个VST SDK似乎都是针对C++的,那么C#呢?

    我想开始制作 VSTi 更具体地说 midi 那些不产生任何声音而只是将 midi 数据输出到其他 vst 插头 琶音器 和弦工具等 的 现在我刚刚买了 C 书籍 认为这将是一门不错的语言 不仅仅是 vst 编程 但每个人都一直说 C 是正
  • 如何以编程方式卸载flutter中的应用程序?

    我正在 flutter 中构建一个启动器应用程序 但我无法添加卸载功能 请帮我 添加权限在manifest file
  • 清理 SQL 数据

    谷歌出现了各种关于清理网络访问查询的讨论 但我没有找到任何解决我所关心的问题的内容 在 C 程序中清理用户输入数据 这必须通过可逆转变来完成 而不是通过移除来完成 作为问题的一个简单例子 我不想破坏爱尔兰名字 最好的方法是什么 是否有任何库
  • 将图像绘制到面板控件上会在调整大小时产生伪像

    目前我正在尝试做我认为简单的任务 将图像绘制到整个区域Panel control在 Windows 窗体中 请暂时忽略我可以使用BackgroundImage财产 要绘制的图像如下所示 IE 一个黄色框 周围有 1 像素蓝色框 为了绘图 我
  • 在 GCC 中编译而不生成输出文件

    gcc c somefile c无需链接即可编译并生成相应的somefile o 是否可以编译文件gcc不生成任何输出文件 我知道还有其他方法可以实现此目的 但我很好奇是否有一个标志专门用于正在经历寻找错误 警告的源代码 您可能会喜欢 fs
  • 在 Joomla 框架内强制 PHP 下载文件

    我有一些 PHP 代码 可以在数据库上运行查询 将结果保存到 csv 文件 然后允许用户下载该文件 问题是 csv 文件包含实际 csv 内容周围的页面 HTML 我已经在这里阅读了所有相关问题 包括this one 不幸的是 我的代码存在
  • 从自定义源(非标准 XML)加载 WCF 配置(针对服务器 + 客户端)

    我一直在尝试找到一种方法从备用源 而不是标准的 web config app config 加载我的 WCF 服务配置 巨大的 XML 配置数据 BLOB 我们在受限环境中运行 无法访问服务器的文件系统 因此我们无法自己对 WCF 配置进行
  • 升级到 Gradle 5 后 Querydsl 注释处理器问题

    我有一个 gradle 脚本 它从 Mongo 带注释的实体生成 querydsl 类 到目前为止它可以正常工作 但是升级到 Gradle 5 后我遇到了一个问题 What went wrong Execution failed for t