从 Gradle 构建脚本生成 JPA2 元模型

2023-12-22

我正在尝试为新项目设置 Gradle 构建脚本。该项目将使用 JPA 2 以及Querydsl http://www.querydsl.com/.

On the Querydsl 参考文档的下一页 http://source.mysema.com/static/querydsl/2.1.2/reference/html/ch02s02.html,他们解释了如何为 Maven 和 Ant 设置 JPAAnnotationProcessor (apt)。

我想对 Gradle 做同样的事情,但我不知道如何做,而且我亲爱的朋友在这方面并没有给我太多帮助。我需要找到一种方法来调用带有参数的 Javac(最好没有任何额外的依赖项),以便能够指定 apt 应该使用的处理器(?)


虽然我对使用 Ant 的 gradle 没有任何问题,但我同意原始发布者的观点,即在这种情况下这是不可取的。我找到了 Tom Anderson 的 github 项目here https://bitbucket.org/twic/metamodelcriteriademo/overview这描述了我认为更好的方法。我对其进行了少量修改以满足我的需求(输出到 src/main/ generated),使其看起来像:

sourceSets {
     generated
}

sourceSets.generated.java.srcDirs = ['src/main/generated']

configurations {
     querydslapt
}

dependencies {     
    compile 'mine go here'
    querydslapt 'com.mysema.querydsl:querydsl-apt:2.7.1'
}

task generateQueryDSL(type: Compile, group: 'build', description: 'Generates the QueryDSL query types') {
         source = sourceSets.main.java
         classpath = configurations.compile + configurations.querydslapt
         options.compilerArgs = [
                "-proc:only",
                "-processor", "com.mysema.query.apt.jpa.JPAAnnotationProcessor"
         ]
         destinationDir = sourceSets.generated.java.srcDirs.iterator().next()
}
compileJava.dependsOn generateQueryDSL

这种方法对我来说比另一种方法更有意义,如果它对你来说也有意义,那么你就有了另一个生成 querydsl 的选择。

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

从 Gradle 构建脚本生成 JPA2 元模型 的相关文章

随机推荐

  • 如何在询问槽后捕获IBM Watson Assistant中一个实体的多个值?

    在我的 Watson Assistant 应用程序中 我想要捕获上下文中的多个实体 并且还有一个槽位来向用户提问 这是一个例子 用户 我想从 多伦多 飞往 波士顿 Watson 正确检测到 intent booking city Toron
  • jQuery 摆脱嵌套的 ajax 函数

    在我的JS中 我需要使用AJAX获取3个文件的内容 然后执行一些代码 这导致了嵌套异步函数的创建看起来相当奇怪 另外 每当我使用异步函数时 就会出现这种丑陋的嵌套 当我真的只想等待每个函数完成时 如何避免嵌套函数 如果有帮助的话我正在使用
  • 如何自动启动、执行和停止EC2?

    我想每天在 GPU 机器上测试一次我的 Python 库 我决定使用AWS EC2进行测试 但是gpu机器的费用很高 所以我想在测试结束后停止实例 因此 我想每天自动执行以下操作一次 启动 EC2 实例 手动设置 执行命令 测试 gt 将日
  • 在 VSCode 扩展中找不到命令

    我正在尝试创建 VSCode 扩展 这个扩展提供了两个命令 不用管它们的实现 export function activate context ExtensionContext const provider new ContentProvi
  • 如何对用户密码进行哈希处理?

    请不要将其标记为重复 因为我已经检查了多个帖子 但没有一个对我有帮助 Asp net MVC 如何哈希密码 https stackoverflow com questions 39802164 asp net mvc how to hash
  • 日期无效时引发错误

    我想做的是在日期超出支持范围的情况下引发超出范围错误 就像类型转换所做的那样 我在 CentOS 上使用 PostgreSQL 9 1 6 问题如下 postgres select to date 20130229 yyyymmdd to
  • 如何展平 Observable 中的 Observable 数组

    我正在尝试展平嵌套的 Observable 但我没有让它工作 this af object test father map res gt res namedKeys for let el in res keys res namedKeys
  • 为什么不建议在头文件中定义宏?

    The 谷歌 C 风格指南 http google github io styleguide cppguide html Preprocessor Macros指南建议宏不得定义在 h 头 文件 这样做有什么坏处 预处理器将所有包含的源文件
  • C# 文件大小限制

    我有一个使用 ASP NET NET 2 0 构建的网站 我的业务逻辑中有很多类 我将它们全部保存在一个文件 BL cs 中 我现在已经到了这个文件中有 11 000 行代码的阶段 这是一个问题吗 我应该将其分成几个文件 每个类位于不同的文
  • Ruby:带有 JSON 主体的 PUT 请求?

    我需要创建一个HTTP PUT 请求使用红宝石 该请求有一个JSON 正文 我能够使用以下方法生成 JSON 正文 require rubygems require json jsonbody JSON generate message g
  • html/css 中的楼梯步进文本

    是否有使用 HTML CSS 在网站上阶梯式文本的最佳实践方法 这个单词 and https i stack imgur com eEMe5 png说明了效果 使用CSS属性vertical align带有百分比值 参见MDN 上的此部分
  • 为什么使用 Typescript - Angular2 进行类型定义 (.d.ts)?

    我已经看过其他SO问题了 但仍然对我的问题感到困惑 我见过很多使用的例子Jquery js Toastr js 无需打字的烤面包机 http plnkr co edit VEMcA3SnYtQ35GzVgt80 p preview和别的JS
  • 使用 BouncyCastle 进行简单的 HTTPS 查询

    下面是我用来执行简单 HTTPS 请求的代码的简化版本 Assume the variables host file and postData have valid String values final URL url new URL h
  • 当软键盘出现时,Edittext 在横向模式下调整大小

    当我处于横向模式且屏幕上有 EditText 时 如果我点击 EditText 以调出软键盘 则 EditText 会在两个维度上展开 以占据未被键盘占用的整个屏幕 当键盘关闭时 它会恢复正常大小 我检查了手机上的其他商业应用程序 其中许多
  • 实现接口方法时不允许使用@Override

    我遇到了标题中提到的问题 你可以说这个线程重复了另一个线程 如何在 IntelliJ IDEA 中关闭注释的错误验证 https stackoverflow com questions 1525947 how do i turn off e
  • Flutter @Error:此库禁用空安全功能

    我正在构建一个 Flutter 应用程序 当我为 Android 构建应用程序时 该应用程序运行良好 但当我开始为 iOS 构建应用程序时 我开始遇到 此库禁用空安全功能 的错误 错误如下 Users himanshu pub cache
  • CSS 中的 Rem 单位大小

    我对 CSS 中的 rem 单位有疑问 在我当前的项目中 所有尺寸都是 rem 当我设置元素大小 如 div 时 显示的大小为 16 px x ems 但当 div 包含文本或标题时 显示的大小为 19 x ems Chrome FF 和
  • Spring Web 应用程序初始化了两次

    我发现我的 spring web 项目在 tomcat 上初始化了两次 下面是打印的消息 第一次 INFO Initializing Spring root WebApplicationContext INFO 2015 01 08 15
  • 图像按钮选择器不起作用

    我试图为 ImageView 设置选择器 但它是不工作 我的布局
  • 从 Gradle 构建脚本生成 JPA2 元模型

    我正在尝试为新项目设置 Gradle 构建脚本 该项目将使用 JPA 2 以及Querydsl http www querydsl com On the Querydsl 参考文档的下一页 http source mysema com st