【问题标题】:Adding Code Snippet in PentaHo kettle User defined java Class在 PentaHo 水壶中添加代码片段用户定义的 java 类
【发布时间】:2012-12-04 04:33:13
【问题描述】:

我使用 java 编写了一些自定义代码。我想将代码添加到代码 sn-ps 部分的 Kettle 中的用户定义的 java 类中。有没有办法在 UDJC 的 Classes 和代码片段中添加自定义代码 sn-ps 以便它可以重用。 谢谢。

【问题讨论】:

  • 如果我理解你的问题是正确的,听起来你可能想要做的就是把一些代码放在一个 jar 中,然后把它放到 lib-ext 目录中。我使用一些不属于我想要在代码步骤中使用的 Kettle 的库来执行此操作。
  • 谢谢戈登。我可以对我之前的问题进行更多解释。我已经编写了一些自定义代码,例如 UDJC 中的日期格式化程序。如果我能够在左侧面板中提供的代码 sn-p 中添加相同的内容,那么我可以重复使用相同的内容。我想在左窗格中添加我的代码片段,这样我就可以建立一个库来增强可重用性。
  • 啊,不确定;我自己从未使用过左侧面板,所以我什至不知道如何向其中添加内容

标签: kettle


【解决方案1】:

目前无法在运行时使用 ui 添加代码 sn-ps。如果您需要此功能,可以使用pentaho jira 提交问题。或者就像解决方法一样,您可以编辑 codeSnippits.xml(位于 lib/kettle-ui-*.jar/org/pentaho/di/ui/trans/steps/userdefinedjavaclass/ 下)并将此文件重新压缩回 jar。

【讨论】:

    【解决方案2】:

    我不建议走这条路。 原因很简单,PDI 中的 UDJC 是 Janino,一个相当精简(但速度超快)的 Java 编译器,我引用 Pentaho wiki 表示用户定义的 Java 类:

    不是 100% Java...首先要知道的是 Janino 和作为 结果这一步不需要完整的Java类...... 最明显的限制是没有泛型

    如果我们能够即时添加代码 sn-ps 会发生什么?恐怕不是好事。

    但是,这非常有用,请考虑按照 cmets 中的建议将代码包装在 JAR 包中,将其包含在 PDI 环境的 lib-ext 文件夹中,然后随意将其导入用户定义的 Java 类。恕我直言,这是正确的方法。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多