maven deploy到ftp服务器

参考文章

Maven自动FTP远程部署

------------------------------------------------------------------

1、按照上述文章配置pom.xml和maven的setting.xml。

2、开启vsftp的被动模式(PASV),并设置被动模式的最小最大端口范围,以便于在防火墙中开启。

pasv_enable=YES(默认为YES) 

pasv_min_port=1024(default:0(use any port))

pasv_max_port=65536(default:0(use any port))

3、主动模式(PORT)

port_enable=YES(默认情况下,主动模式被启用)

connect_from_port_20=YES(默认情况下,主动模式进行数据传输时使用20端口,21为命令传输端口)

ftp_data_port=port number(主动模式的数据传输端口,默认值为20)

4、防火墙放行主动模式的21、20及被动模式的最小最大区间端口。

-------------------------------------------------------------

FTP配置参考文章

vsftp配置主动模式和被动模式

CentOS下vsftp设置、匿名用户&本地用户设置、PORT、PASV模式设置

linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录

---------------------------------------------------------

5、FTP用户从根目录跳转的配置

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

根目录的跳转由上面的三个选项控制,那么该如何理解呢?
第一个选项chroot_local_user是用来控制用户默认能否从根目录进行跳转,YES为不可跳转,NO为可跳转。
但这与字面意思的直观理解是相反的,如果按照字面意思理解,YES应该是允许改变根目录即可以跳转的。
那应该怎么理解才能通顺呢?chroot我们可以理解为Change To Self-Root,即跳转到自己的根目录,即限定在自己的根目录内,而不是Change Root To Others,即将根目录跳转到其它目录。
设置默认跳转的意思理解通顺后,后面两个选项也就简单了。
如果所有用户默认限定在自己的根目录内即不允许跳转时,当启用列表限制即chroot_list_enable=YES时,列表文件chroot_list中的用户就是可以改跳转的。
所以设置顺序是先将所有用户默认限定在自己的根目录下即不允许跳转,然后启用列表限制,最后将允许跳转的用户加入列表文件chroot_list中。

6、allow_writeable_chroot=YES,vsftp中当将用户限定在其根目录时,如果该用户还对根目录有写权限则会报错,当该选项设置为YES则表示允许用户对其根目录有写权限。
local_root,为所有用户的默认根目录。

7、maven deploy时,选择的部署仓库是release库还是snapshot库,不是根据其参数-P的值来决定的,而是由包名是否以“-SNAPSHOT”决定的。
只要包名不严格以“-SNAPSHOT”结尾,不论-P为何值,都会发布到snapshot库。

8、maven的install-file和deploy-file是用来将项目自身的包部署到仓库的,dependency:copy是用来将外部仓库包拷贝到本项目内或本地目录的。
maven命令发布、安装和下载指定jar文件,这篇文章里的前三个都实践过没问题,第四个失败,并且注意copy时设置的参数是-Dartifact,而不是-DartifactId。
原文地址:https://www.cnblogs.com/StarkBrothers/p/11783099.html