你能在位于 jar 内的构建文件上运行 Ant 吗?



我想知道您是否可以在位于 JAR 内的构建文件上运行 Ant。 我对此感兴趣的原因是,我想在我的构建文件中包含一个"部署"目标,可以在 jar 移动到其目的地后调用该目标。 该"部署"目标将负责提取运行程序所需的资源和其他库。

因此,例如,在构建时,我会将属性,图像和外部jar打包在我的jar内。 然后,部署过程将包括将 jar 移动到它要运行的位置,并调用 ant <someOption> myjar.jar/build.xml deploy 或类似的东西。

这有意义吗?

我认为没有办法ant可以在 jar 内获取构建文件。

对于您描述的方法,您需要解压缩build.xml并将其传递给 ant。由于 ant 不将stdin作为构建文件的参数,因此您需要存储构建文件然后删除它:

$ unzip myjar.jar build.xml

$ ant deploy

$ rm build.xml

但是,应用程序运行环境是否有必要仅安装ant来提取这些资源?不能在您的应用程序中完成吗?或者你不能分发一个带有你的jar,库jar和图像的zip文件?

或者也许创建一个安装程序应该更合适:I\Pack,或者,如果只有Windows,NSIS。

可以使用 ProjectHelper 扩展 Ant 的构建文件解析。 默认仅加载文件(源)。

你可以扩展它来处理XML源,它可以来自jar(可能使用getResourceAsStream(..))。

[ 旁注:您可以通过编程方式运行 ant。无需提取然后运行命令行 - 请参阅通过 Java 以编程方式运行 ANT ]

相关内容

  • 没有找到相关文章

最新更新