是否有可能和/或良好的做法使用Apache Ant或Maven安装软件包?

时间:2014-03-10 21:01:32

标签: maven ant build

我改进构建的过程,很明显我们可以通过让ant完成大部分设置工作来大大简化新部署。您检查代码,运行一个引导任务,执行下载库依赖项,获取构建工具二进制文件等操作。

这不是我们使用蚂蚁的原因,但可能是一种好处;现在它做的事情包括单元测试,覆盖率记录,SLOC计数,混乱检测,标准合规等等。

这一步也将有所帮助,能够进行引导程序检查并安装OS-package依赖项。类似的东西:

1) Check OS
2) If recognized/supported, run (eg) 
    for Ubuntu: apt-get install curl apache2 libapache2-mod-php5; 
    for RedHat: run yum install -y apache curl-bin

有办法做到这一点吗?我知道你可以运行任意命令,但是sudoing打破了这一点。另外,有没有理由不这样做呢?

2 个答案:

答案 0 :(得分:3)

我使用Chef来安装东西和Ant来运行构建。你可以execute arbitrary commands with Ant,但你可能不想这样做。

答案 1 :(得分:0)

Ant还使用<condition>任务提供了一些您正在寻找的内容,如下所示:

<target name="run" depends="if_unix, if_windows"/>

<target name="checkos">
    <condition property="isWindows">
        <os family="windows" />
    </condition>

    <condition property="isLinux">
        <os family="unix" />
    </condition>
</target>

<target name="if_windows" depends="checkos" if="isWindows">
    <echo message="running on windows"/>
</target>

<target name="if_unix" depends="checkos" if="isLinux">
    <echo message="running on linux"/>
</target>

然后,您将了解如何确定正在运行的Linux版本。抱歉,无法帮助完成该部分。一旦你想出那个部分,就可以使用Ant的<exec>任务来执行Ubuntu或RedHat的系统命令。

我当然不是Linux管理员所以我不能谈论这是否是一个坏主意,但从构建的角度来看 - 这听起来很合理,但是一旦构建运行一次,安装将在那里。我想如果你真的自我引导&#39;每次机器,然后也许厨师的方法更有意义。