从Windows下的ANT脚本创建RPM包

时间:2009-01-16 10:15:08

标签: java ant installer rpm

我需要从在Windows计算机上运行的ANT脚本创建RPM包。此包必须包含构建中的结果类以及其他一些其他资源。

我想应该有一些程序可以从命令行调用来创建这个包。

我想在Windows下执行此操作的原因是我们有一个脚本可以为几个不同的平台构建安装程序,并且已经为windows配置了所有内容,因此我希望避免将所有内容迁移到Linux的痛苦。

你知道怎么能实现这个目标吗?

编辑: 我使用了一台单独的Linux机器来完成这项工作。我使用scp任务复制所有文件,然后使用ssh任务远程执行rpm命令。如果此任务返回成功代码,我将使用scp。

复制生成的rpm

6 个答案:

答案 0 :(得分:8)

还要考虑redline-rpm java库&蚂蚁任务。 https://github.com/craigwblake/redline

答案 1 :(得分:4)

一种可能的解决方案是使用纯java RPM操作工具,例如:

中描述的工具

http://jrpm.sourceforge.net/rpmspec/index.html

答案 2 :(得分:2)

检查Ant手册,我发现了以下可选任务:

http://ant.apache.org/manual/Tasks/rpm.html

但是,这仅适用于Linux计算机

答案 3 :(得分:2)

我不知道有任何方法可以做到这一点,但这可能只是我无知的说法。

两个建议:

设置Linux计算机(单独的PC或虚拟机)并通过脚本远程安装rpm(请参阅ssh / scp / samba)。这让我觉得这是一种避免完全构建环境迁移的安全方法。

更冒险的方法是使用Java编写自己的RPM文件。 The RPM file format似乎是一个标题,后跟多种标准存档格式之一。需要对存档内容进行一些分析,因此这种方法在短期内可能非常耗时(尽管它可能会导致更快的构建)。

答案 4 :(得分:1)

Freaking Package Management可以做到这一点。您应该能够使用JRuby和MRI Ruby运行它。

fpm -s dir -t rpm mydir - 或其他提供rpm关键字的咒语。请参阅fpm --help

答案 5 :(得分:0)

我认为不可能,为linux构建的运行时包不能在windows上运行(我们不期望linux上的dll和exes,对吗!)。 Cygwin面临着类似的挑战,他们明确表示他们通过编译Windows的源文件来实现这一目标。