如何从 Gradle 启用 Eclipselink 的静态编织

2024-01-22

我想为 Gradle 中的 JPA 类启用 Eclipselink 的静态编织。 Eclipselink 文档解释了如何在 Ant 任务中执行此操作:

<target name="define.task" description="New task definition for EclipseLink static weaving"/>

<taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"/>
</target>
<target name="weaving" description="perform weaving" depends="define.task">
    <weave  source="c:\myjar.jar"
            target="c:\wovenmyjar.jar"
            persistenceinfo="c:\myjar-containing-persistenceinfo.jar">
        <classpath>
            <pathelement path="c:\myjar-dependent.jar"/>
        </classpath>

    </weave>
</target>

现在我有两个问题:

1. 我如何将其“翻译”为 Gradle 方法?我已经尝试过这个(基于文档http://www.gradle.org/docs/current/userguide/ant.html#N1143F http://www.gradle.org/docs/current/userguide/ant.html#N1143F):

task eclipseWeave << {
    ant.taskdef(name: "weave",
                classname: "org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask",
                classpath: configurations.compile.asPath)

    ant.weave(source: relativePath(compileJava.destinationDir),
              target: relativePath(compileJava.destinationDir),
              persistenceinfo: relativePath(processResources.destinationDir) {
    }
}

但问题是类路径似乎不起作用ant.weave(..)。编织过程稍后会中止,并显示以下消息:

Execution failed for task ':eclipseWeave'.
> java.lang.NoClassDefFoundError: some/class/from/my/dependencies

类路径设置适用于ant.taskdef(..)因为在我的依赖项中找到了 StaticWeaveAntTask 。我怎样才能使它适用于ant.weave(..) itself?

2.如何将其集成到我的构建中,以便它在每次之后自动执行compileJava step?


我知道这是一个老问题,但根据OP对“gradle”方式的评论,我想我会分享我们的方法。我们正在使用 JavaExec 任务和各种可用的配置对象。

由于编织是在类目录中完成的(在构建 JAR 之前),因此您最终只需构建一个 jar,而不是两个。由于我们的罐子很大,这对我们来说很重要。

task performJPAWeaving(type: JavaExec, dependsOn: "compileJava"){
  inputs.dir compileJava.destinationDir
  outputs.dir compileJava.destinationDir
  main "org.eclipse.persistence.tools.weaving.jpa.StaticWeave"
  args  "-persistenceinfo",
   "src/main/resources",
   compileJava.destinationDir.getAbsolutePath()
  classpath = configurations.compileClasspath
}

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

如何从 Gradle 启用 Eclipselink 的静态编织 的相关文章

  • 未找到 MessageSource 的 ResourceBundle [消息]:找不到基本名称消息的包

    在 applicationContext xml 中 我定义了 MessageSource 如下所示
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • Grails 2.3.0 自动重新加载不起作用

    我最近将我们的项目升级到 grails 2 3 0 一切工作正常 除了每当我更改代码时自动重新加载都无法工作的问题 这包括所有项目工件 控制器 域 服务 gsps css 和 javascript 文件 我的旧版本 grails 可以正常工
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 如何在 Eclipse .classpath 文件中使用环境变量?

    在 Windows 中 我有一个环境变量 EXTERNAL LIB ROOT 指向 C Program Files MyExternalLibRoot 在另一台计算机上 它可能指向 C ExternalLibs 在 ant build xm
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • 如何将毕加索与列表视图一起使用?

    我想向 ListView 添加有关小部件的信息 public class Widget String w type String title String desc String img 如果 img 字段不为空 我想在列表视图中显示图像
  • 如何获取数组中同一键的最大值

    如何获取数组中同一键的最大值 E x 我有这个数组 Array id gt 1 amount gt 4 Array id gt 1 amount gt 3 Array id gt 2 amount gt 3 我想要以下结果 意味着我想要相同
  • 递归:幕后[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 虽然众所周知 递归是 一种调用自身的方法 但我倾向于想知道到底发生了什么 举个经典的阶乘例子 public static int fact
  • 以角度显示时间/时钟

    我正在使用以下方法在我的应用程序中显示时间 constructor private datePipe DatePipe ngOnInit this getTime this date this datePipe transform new
  • 为什么指定模式名称时 PostgreSQL SELECT 查询会返回不同的结果?

    我有一个 PostgreSQL 数据库表 有 4 列 标记为 column a column b 等 我想使用简单的选择查询来查询该表 select from table name 我得到一些结果 如下所示 column a column
  • GCE - 如果我使用 SSH 或从终端登录,用户名会不同吗?

    我创建了一个新项目 里面什么都没有 当我创建第一个微实例时 我执行了以下操作 使用浏览器窗口 SSH 连接到它 我懂了 用户名 instance 1 如果我使用 gcloud 命令进行连接 gcloud 计算 project project
  • C 中 Union 的示例 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找一些工会的例子 不是为了了
  • Flutter:使用导航器推送到新屏幕时保留 BottomNavigationBar

    在iOS中 我们有一个UITabBar控制器 https developer apple com documentation uikit uitabbarcontroller当我们推送到新的 ViewController 时 它会永久保留在
  • 如何使用 Google Cloud Pub/Sub 进行 Junit 测试

    我在我的系统中使用Google Cloud Pub Sub的push pub sub 我想构建我的CI测试代码 但我不知道如何去做 例如 一些代码是这样的 final Pubsub pubsub PubsubUtils getClient
  • Clang:将函数的 AST 从原始文件写入新文件

    我是 Clang 的新手 正在尝试通过 libtooling 分析 AST 我想找到一个特定的函数 并将其 AST 从原始源文件移动到新文件 我已经知道如何通过 MatchFinder 找到该函数 现在 我想知道如何将其 AST 写入新文件
  • 在 Gstreamer 上流式传输 MP4 视频文件

    我第一次使用 gstreamer 并尝试使用 Gstreamer RTP 和 UDP 将 MP4 视频文件从服务器流式传输到客户端 我尝试使用的命令行 在服务器端 gst launch 1 0 v filesrc location file
  • 确定图像中的文本和图形区域

    我不知道我是否应该在这里发布这个问题 但如果有人知道请回答一下 用于确定图像中哪个区域是文本 哪个区域是图形的算法是什么 意味着如何分离这些区域 图或图 大多数 OCR 软件 例如Ocropus http code google com p
  • iOS 7 访问企业应用程序中的 UUID 值(不适用于 AppStore)

    Apple 自 iOS7 起已弃用且无法使用该属性 uniqueIdentifier 其他属性 identifierForVendor and advertisingIdentifier有一个大问题 他们在卸载并重新安装应用程序后更改了值
  • 视图和 $this 中的 Cakephp 助手

    我正在尝试确定在视图中使用助手的最佳标准是否应该 echo form gt input or echo this gt Form gt input 在 CakePHP 手册 1 2 版中 Helper 类是通过 helper 对象直接访问的
  • Scala Nil 相当于 Set

    是否有相当于Nil for Set在斯卡拉 我尝试使用Nil作为一个值Set 但我得到了一个错误 预期是因为类型Nil is List Thanks Set empty是那个集合吗 虽然你无法直接获取它 但事实证明它只是Set伴生对象 显然
  • 一个通用 Google Analytics(分析)代码中包含多个属性

    我正在尝试在我的网站中嵌入基于新的 Universal Analytics 方法的 GA 代码 我想要实现的是将数据从一个页面发送到多个属性 因此 我检查了有关新通用 GA 代码的官方 GA 文档 特别是有关 使用多 个跟踪对象 的部分 h
  • R 根据另一列的因子水平创建新的值列[重复]

    这个问题在这里已经有答案了 我正在尝试根据另一列的值创建一个新的值列 如果 iucnStatus 列中的值为 LC 或 NT 我希望新列 受威胁 中的值为 Not Threatened 如果 iucnStatus 中的值为 VU EN CR
  • 我可以在 Subversion 中关闭自动合并吗?

    我们正在考虑从版本控制系统的签出 编辑 签入风格转向 Subversion 在评估过程中我们发现 当您在 TortoiseSVN 可能还有任何 Subversion 客户端 中执行更新操作时 如果存储库中需要应用于您正在编辑的文件的更改不会
  • 在运行时更改类类型

    我有两个课程 我们称它们为A and B 两者都继承自一个共同的超类 C 假设我需要建立一个List of Cs 我的问题是 根据收到的数据C的构造函数我需要放一个A or B列表内的对象 有没有办法从内部做到这一点C的构造函数 或者 我该
  • 如何从 Gradle 启用 Eclipselink 的静态编织

    我想为 Gradle 中的 JPA 类启用 Eclipselink 的静态编织 Eclipselink 文档解释了如何在 Ant 任务中执行此操作