Maven自动化部署方案 - 2

Maven自动化部署方案 - 2

一、   摘要

        关于Maven远程自动部署,有多种不同的方案,前面讲述了使用tomcat7-maven-plugin插件进行实现的方案,其优点是简单快捷,不依赖远程的系统环境,只需开启对应版本的tomcat即可,但这不能满足一些特定的需求,比如服务器不是tomcat、部署的目标地址不在tomcat的appBase中而在服务器的其他目录下。因此该方案采用wagon-maven-plugin插件,该插件的远程部署功能自由多样,但在此我们只列举两种方式:SSH和FTP。

        SSH:即使用SSH协议,向远程的SSH服务器进行项目文件的远程发送。对于Linux系统一般情况下已经自带了SSH服务,在此不多叙述,这种情况只需要对maven进行配置即可实现远程部署。

        FTP:即使用FTP协议,向远程FTP服务器进行项目文件的远程发送。对于windows系统来说,要想使用SSH协议及服务,需要在系统上安装搭建SSH服务,这样的实现方式成功率不是很高,而在windows上搭建FTP服务却是很容易的事情,相关教程很多,需要注意的是防火墙的设置要允许FTP的相关端口。之后也是对maven进行相应的配置,即可完成远程部署。

二、   环境

Eclipse

Apache Maven 3.3.3

Windows7或Linux(RedHat6.x)

三、   配置

A.    SSH

1、  Linux

        Linux系统默认安装了SSH服务,若没有开启使用命令servicesshd start启动,并设置允许远程登录,测试正常后即可,若已经可以远程SSH登录,此步骤省略。

2、  Maven

        对于maven的配置依然是在其setting文件中加入远程Linux的登录名和密码,这样比较安全:

<server> 

    <id>webserver</id> 

         <username>root</username> 

         <password>root</password> 

         </server>

3、  Pom

        Pom文件中,打包的策略配置参考之前的文章,在此只列举对target目录下war包进行远程部署的相关配置:

<build>

                   <finalName>XXX</finalName>

<!-- maven远程ssh部署  -->

                   <plugins>

                            <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>wagon-maven-plugin</artifactId>

                                     <version>1.0</version>

                                     <configuration>

                                               <serverId>webserver</serverId>

                                               <fromFile>target/XXX.war</fromFile>

                                               <url>scp://root:root@ip/绝对路径</url>

                                     </configuration>

                            </plugin>

                   </plugins>

                   <extensions> 

                       <extension> 

                           <groupId>org.apache.maven.wagon</groupId> 

                           <artifactId>wagon-ssh</artifactId> 

                           <version>2.10</version> 

                       </extension> 

                   </extensions>

         </build>

说明:<fromFile>即为要发送的文件;

           <url>中用户名密码(不写应该也行、未测)ip以及绝对路径,需要注意LInix中的对应目录下是否有读写权限。

B.    FTP

1、  Windows

        Windows下开启FTP服务也有相关的教程,只需简单配置即可,需要注意的地方是防火墙的配置:在控制面板——Windows防火墙——允许程序通过Windows防火墙中将FTP相关勾选。如必要可以单独创建特定的windows用户来使用FTP服务。

2、  Maven

        同样需要配置FTP服务器的相关用户名和密码:

<server> 

    <id>webserver</id> 

         <username>username</username> 

         <password>password</password> 

         </server>

 

3、  Pom

        Pom文件中的相关配置:

<plugins>

             <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>wagon-maven-plugin</artifactId>

                                     <version>1.0</version>

                                     <configuration>

                                               <serverId>webserver</serverId>

                                               <fromFile>target/XXX.war</fromFile>

                                               <url>ftp://username:password@ip</url>

                                     </configuration>

                            </plugin>

         </plugins>

         <extensions> 

        <extension> 

        <groupId>org.apache.maven.wagon</groupId> 

        <artifactId>wagon-ftp</artifactId> 

        <version>1.0</version>

        </extension> 

    </extensions> 

  </build>

        说明:<url>中没有给定相对路径,因为在FTP中给定了具体的物理路径。

四、   部署

        maven部署命令:wagon:upload-single;

        说明:wagon:upload命令会将项目物理路径下所有文件都进行远程发送。

五、   备注

1、  此方案部署的远程路径任意自定义,但注意要有相应的读写权限,另外防火墙的设置直接影响了远程部署的成败,如果连接有问题,在执行部署命令后可能会报错:Unable to create a Wagon instance for。。。Connection timedout等。

2、  FTP的物理路径建议直接设置成服务器(tomcat)的项目部署路径,并且允许读写权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值