我刚刚构建了一个jython项目,它使用一些python模块导入和一些javajar。在我自己的电脑上,因为我只想完成这件事,所以我通过对sys.path进行硬编码并分别安装我想要的每个模块和jar,让事情以一种非常黑客的方式工作。这绝对不是我想保留的发布版本。我读过关于能够将所有东西打包到一个独立的jython jar中的文章,这听起来很不错。有什么理由我不该这么做吗?如果没有,有没有人能告诉我最好的方法?我正在通过pig来运行整个程序,所以拥有一个可调用的jython jar将是理想的。
我知道一些类似的问题已经存在了,但是这些问题的答案似乎很旧,而且给出的文档(例如mavenjython)也很差。我已经研究了mavenjython和jip,但是我不能在两者之间做出决定,我也没有找到足够的信息。这个问题的理想答案我应该使用什么,为什么我应该使用它,并给出一个如何使用它的简要演示。任何一个链接都会很棒。
谢谢!
1条答案
按热度按时间qyzbxkaa1#
请详细说明如何改进mavenjython文档。自2011年以来,一切都没有改变(你可能已经看到了这个答案),这是不久前的事了。有这个网站,但作为一个程序员,你可能只想阅读jythoncompilemaven插件测试项目的源代码,这个项目只有200行代码。使用这个包作为您自己项目的起点是一个好主意。
分配哲学
java软件发行版(和windows软件发行版)通常的工作方式是打包所有需要的东西。所以是的,一个独立的jython jar是合适的。缺点是每个软件可能使用不同的jython版本,好处是这可能是您想要的(更新可能会破坏东西)。这也是mavenjython方法,将所有内容打包到正确的版本中。
python和linux软件发行版只是安装软件包,在安装时检查兼容性。这是jip方法,它假设您已经拥有jython,安装软件的人将通过安装正确的版本来解决兼容性问题。
差异
我不能说太多关于jip虽然,我没有使用它。从我在演示中看到的情况来看,jip旨在提供对maven java库的python包访问。它似乎还能够从jython代码生成maven包。所以你可以使用mavenjython或者jip来实现你的目标。试试看。
使用mavenjython构建的可交付成果分发jython,而jip没有。
如果您想指导那些已经使用jython并且不熟悉maven的程序员,他们想使用您的库来获取您的jython库包,那么jip可能是一个不错的选择。
如果您想为程序员编写jython库并分发它们,那么可以使用mavenjython或jip。
如果您有一个软件包最终将作为可交付给客户的产品,它碰巧也使用jython代码和jython包,可能还向用户提供程序内脚本,那么使用mavenjython。它允许您创建一个独立的可执行文件。
清管器用例
要通过pig运行jython,只需安装jython并将jython源代码放到路径中即可——请参阅pig手册的嵌入python部分。jip可以适用于在本地安装jython包,但如果您只想运行代码,则不需要jip。但是,如果您想分发使用pig的软件,并在客户机上安装pig、jython和您的代码,mavenjython可以为您这样做。