从 Eclipse 打包和部署 Jython 程序

2023-12-10

因此,我一直致力于编写一些 Jython 代码。我一直在使用最新版本的 Eclipse IDE 和 PyDev 插件进行开发。到目前为止,情况还算可以忍受。我已经让所有 Python 脚本正常工作,并且成功地将几个 JAR 文件和另一个 Java 项目的类目录作为外部依赖项包含在内。 Eclipse IDE 中的一切似乎都运行良好。

现在我需要将所有内容打包并部署。据我所知,最好的方法是将所有内容打包到一个 JAR 文件中。 Jython 文档建议从 jython.jar 文件开始并向其中添加内容。好的。因此,我修改了主 python 模块并开始将所有 python 源添加到 JAR 中。

它执行但当然无法找到所有外部依赖项。

应该如何添加外部 JAR 文件以便 Jython 解释器能够正确地看到它们?在这样的设置中,应该如何管理更复杂的依赖关系?

是否有一个 Eclipse 插件或者像 Ant 或 Maven 这样的插件,只需按一下按钮就可以为我处理所有这些步骤?

我不可能是第一个需要部署具有复杂依赖关系的 Jython 代码的人,可以吗?


我已经在让这一切正常工作方面取得了一些进展,所以我想我会在这里写一些注释,以防它们帮助其他人。我仍然想听听其他人尝试组合这样的东西的经历。

事实证明,从 3.5 开始,Eclipse 有一个 Java -> Runnable JAR File 的项目导出选项。如果使用此选项,则可以在导出向导中指向 Java 主类。您还可以选择将您依赖的所有 JAR 重新打包到新的 JAR 文件中。确保选中该框以将导出另存为 ANT 版本,以便您可以快速重复该过程。请注意,第一次通过界面执行此操作时,可能会失败,但仍会创建一个 JAR 文件。

现在事情变得奇怪了。为了跟踪所有依赖项,我仍在项目中使用大部分不完整的 Maven 构建。我创建 Maven .POM 文件。我告诉 Maven 我的外部 JAR 依赖项是什么。然后我告诉 Maven 为我做一个依赖更新。它按预期将所有内容拉入我的 Maven 存储库。

现在,当我进行 ANT 构建时,它似乎正在从 Maven 获取要包含在最终构建中的 JAR 列表。我不太确定它是否应该这样工作。我也不能 100% 确定它是否有效。我想我会知道何时必须向项目添加另一个外部 JAR。

无论如何,如果你遵循这个question您将看到,您可以采用最新版本的 Jython 并提取 org.python.util.JarRunner.java 文件并在您自己的项目中使用它。这是您的 Java.main 类,您需要将 ANT 构建指向该类。从那里,将您的主要 Python/Jython 脚本转换为run该问题中讨论的脚本。

接下来,在 Jython 目录中构建 Jython JAR 文件的另一个副本。这个应该将 /Lib 目录拉入 JAR 中。保存它,然后将 PyDev 项目的 Eclipse IDE Jave Build 选项指向该 JAR 作为外部依赖项。您的 JarRunner 现在将工作并执行runJython 下的 .py 文件。

如果一切正常,您应该能够重新运行之前导出的 ANT 构建,并且最终会得到一个 JAR 文件,您可以在命令行上执行该文件,如下所示:

java -jar {yourjar} 参数

并分发给您的客户,无需任何额外的依赖。

如果这一切看起来有点复杂,确实如此。如果有人有更好的方法使用 Eclipse 来设置这一切,请告诉我。

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

从 Eclipse 打包和部署 Jython 程序 的相关文章

随机推荐