我是蚂蚁的新手。我正在尝试使用 GoCD 进行索引的简单部署.html。基本上我正在尝试将文件从一个文件夹复制到/var/www/html(这基本上需要 sudo 权限才能做(。这是我的蚂蚁脚本:
<project name="My Project" default="help" basedir=".">
<condition property="rootTasksEnabled">
<equals arg1="ec2-user" arg2="root" />
</condition>
<target name="copy" description="Copy New Web Page" if="rootTasksEnabled">
<copy file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html" todir="/var/www/html"/>
</target>
</project>
我正在尝试构建此版本.xml,部署成功,但文件未按脚本复制。
我尝试将复制目标替换为以下内容:
<project name="My Project" default="help" basedir=".">
<condition property="rootTasksEnabled">
<equals arg1="ec2-user" arg2="root" />
</condition>
<copy todir="/var/www/html" flatten="true" if="rootTasksEnabled">
<resources>
<file file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html"/>
</resources>
</copy>
</project>
这里抛出的错误就像"构建失败"一样/var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5:copy不支持"if"属性">
有人可以帮帮我,因为我没有正确的方向要去。我想要实现的是将文件复制到具有sudo权限的文件夹中。
如果您查看有关复制任务的 Ant 文档,您会注意到在"参数"下以及进一步的"属性"列下,在调用复制任务时不支持"if"属性 - 因此您收到的错误消息:"BUILD FAILED/var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5:copy 不支持 'if' 属性"。
我可以建议尝试以下方法:
<project name="My Project" default="help" basedir=".">
<condition property="rootTasksEnabled">
<equals arg1="ec2-user" arg2="root" />
</condition>
<if>
<isset property="rootTasksEnabled" />
<then>
<copy todir="/var/www/html" flatten="true">
<resources>
<file file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html"/>
</resources>
</copy>
</then>
</if>
</project>
另一种方法是利用 if/then 任务,而不是在对复制任务的调用中嵌入"if"条件(因为它不受支持(。
*注意:此方法确实需要使用 Ant Contrib
sudo cp"可以这样实现:
<exec executable="/usr/bin/sudo">
<arg value="cp"/>
<arg value="${name}.war"/>
<arg value="${deploy.path}"/>
</exec>
它不是X平台/便携式,但可以完成Linux的工作