gpt4 book ai didi

linux - Ant、sudo 和 copy 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:03 25 4
gpt4 key购买 nike

我是 Ant 的新手。我正在尝试使用 GoCD 对 index.html 进行简单部署。基本上,我试图将文件从一个文件夹复制到/var/www/html(这基本上需要 sudo 权限才能执行)。这是我的 Ant 脚本:

<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>

我正在尝试构建此 build.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>

这里抛出类似“BUILD FAILED/var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5: 复制不支持“if”属性”

有人可以帮助我吗,因为我没有正确的方向。我想要实现的是将文件复制到具有 sudo 权限的文件夹。

最佳答案

如果您查看 Copy task 上的 Ant 文档,您会注意到在“参数”下以及“属性”列下,在对复制任务的调用中不支持“if”属性 - 因此您收到错误消息:“BUILD FAILED/var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5: 复制不支持“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”条件(因为它不受支持),另一种方法是使用 if/then 任务。

*注意:此方法确实需要使用 Ant Contrib

关于linux - Ant、sudo 和 copy 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com