由于写保护,使用Maven部署到BFTP-Server失败

时间:2012-05-27 14:43:32

标签: maven deployment ftp

我在archlinux VM上运行了一个jetty 8服务器。我安装了bftpd作为FTP服务器并按如下方式配置了我的maven项目:

...
<distributionManagement>
    <repository>
        <id>personal-ftp-repository</id>
        <url>ftp://www.example.com</url>
    </repository>
</distributionManagement>
...
<extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-ftp</artifactId>
    <version>1.0-beta-6</version>
</extension>
...

在我的settings.xml中正确定义了为distributionManagement提供名称的repo,并且部署正常,因为它在运行mvn deploy时正确上载了已组装的WAR。

但上传的文件会获得不需要的文件权限。我已将bftpd UMASK设置为000,这导致上传目录的文件权限为777,上传文件为666。但是这些不能由服务器执行,因此jetty无法为它们提供服务。

当我手动将WAR文件的权限切换为777时,文件按预期提供。但是,当我尝试通过mvn deploy上传更新版本的WAR时,它报告了这一点     FTP服务器响应:553错误:远程文件被写保护。 即使码头服务器已停止。

必须有一种方法来部署WAR而无需手动删除旧的WAR,部署然后必须手动设置文件权限但我找不到。

2 个答案:

答案 0 :(得分:0)

我不知道你正在使用什么服务,但如果你正在使用tomcat .. 也许你可以试试这个..

  1. 打开cmd,
  2. 导航到pom.xml存在的目录
  3. 类型命令 - &gt; mvn clean install tomcat:deploy。 (使用tomcat:取消部署tomcat:deploy,或者只是tomcat:redeploy,在后续运行时首先删除以前的部署。)
  4. 此单个命令字符串执行以下所有操作:

    • 删除服务/目标输出文件夹(如果已存在)(与单独的mvn clean相同)
    • 重新创建文件夹并生成并编译Java类(mvn包)
    • 为Web服务提供者和JAR文件
    • 创建WAR文件
    • 将JAR和WAR安装到您的本地Maven存储库(mvn install)
    • 取消部署以前的WAR文件(如果还使用tomcat:undeploy或tomcat:redeploy)
    • 将新WAR文件部署到Tomcat上。 (mvn tomcat:deploy)

答案 1 :(得分:0)

默认情况下,BFTPD中禁用FTP的DELE命令。在/etc/bftpd.conf中打开它解决了失败的部署问题。因此,似乎部署目标首先尝试删除旧文件,然后上传新文件。也不知道。