我在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,部署然后必须手动设置文件权限但我找不到。
答案 0 :(得分:0)
我不知道你正在使用什么服务,但如果你正在使用tomcat .. 也许你可以试试这个..
此单个命令字符串执行以下所有操作:
答案 1 :(得分:0)
默认情况下,BFTPD中禁用FTP的DELE命令。在/etc/bftpd.conf中打开它解决了失败的部署问题。因此,似乎部署目标首先尝试删除旧文件,然后上传新文件。也不知道。