Maven自动FTP远程部署

参照官网文档:

https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html

1、在pom.xml中加入:

<project>
  ...
  <distributionManagement>
    <repository>
      <id>ftp-repository</id>
      <url>ftp://repository.mycompany.com/repository</url>
    </repository>
  </distributionManagement>

  <build>
    <extensions>
      <!-- Enabling the use of FTP -->
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ftp</artifactId>
         <version>1.0-beta-6</version>
      </extension>
    </extensions>
  </build>
  ...
</project>

2、在maven的setting.xml中加入,因为我的是netbeans自带了一个maven, 所以两处都改写了

<settings>
  ...
  <servers>
    <server>
      <id>ftp-repository</id>
      <username>user</username>
      <password>pass</password>
    </server>
  </servers>
  ...
</settings>

 3、检查FTP是否登陆正确,可以用ftp xx.xx.xx.xx命令行测试,或者用FTP客户端测试,在我的过程中,命令行正确,但客户端连不上,当两个都能连上时,正常了。

运行: 

mvn deploy

 结果出错了,提示: Password not set.

经检查,是因为系统中有两个Maven, 一个是Netbeans自带的,一个是系统本来安装的,在之前更改setting,xml, 只改了Netbenans自带的,没有改/users/xxxx/.m2/settings.xml。

将同样的settings.xml复制到c:usersxxxx.m2settings.xml,“Password not set” 错误消失。

又出现“FTP connect: refused”, 这个是FTP设置的错误(SSL),更改后问题消除,可以自动部署到远程服务器目录下。

通过ssh自动部署的参见:

https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html

或者:

https://stackoverflow.com/questions/3300018/uploading-a-file-via-scp-with-maven-fails/3303525#3303525

原文地址:https://www.cnblogs.com/legendjslc/p/8027805.html