【问题标题】:Ant build denied permission to copy .war fileAnt 构建拒绝复制 .war 文件的权限
【发布时间】:2011-07-31 05:00:57
【问题描述】:

我有一个打包的 app.war 文件,我试图将它复制到 webapps 文件夹中,但出现错误:

构建失败 由于 java.io.FileNotFoundException /usr/local/tomcat/webapps/mywar.war 无法将 mywar.war 复制到 /usr/local/tomcat/webapps/mywar.war(权限被拒绝)

这是 ant 代码:

<target name="install" depends="package">
      <copy file="mywar.war" tofile="${webapp.dir}/mywar.war" overwrite="true" />
</target>

这显然是一个权限问题。我无法通过 chmod 777 .war 文件真正解决它,因为 myapp.war 每次都会被删除,并且新文件将再次应用限制性权限。

如果我将整个 webapps 目录权限设置为 777 或其他什么?就安全性而言,这似乎是不好的做法,对吧?或者是否有一个 ant 命令来授予脚本 root 权限?如果重要的话,我正在使用 ubuntu。

谢谢!

【问题讨论】:

    标签: web-applications ant build-process build-automation war


    【解决方案1】:

    我个人用Ant构建WAR文件,然后su到root并手动复制到webapps文件夹中。

    但是,您可以使特定组可写 webapps 文件夹,并以该组的成员身份运行 Ant。

    【讨论】:

    • 每次你想尝试一些东西时,这不是需要很长时间吗?
    • 我做的项目比较稳定。但鉴于无论如何我必须在部署 WAR 文件之前停止服务器,我认为这不会产生太多额外开销。
    【解决方案2】:

    尝试使用scp 任务。您需要确保 jsch 在 Ant 类路径上才能正常工作。 Ant 人员有关于它的文档。

    &lt;scp file="mywar.war" todir="root:password@localhost:${webapp.dir}"/&gt;

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2016-05-22
      • 2018-08-03
      • 1970-01-01
      相关资源
      最近更新 更多