• wagon-maven-plugin实现自动打包部署到服务器


    1.在maven中添加依赖

    1 <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/wagon-maven-plugin -->
    2         <dependency>
    3             <groupId>org.codehaus.mojo</groupId>
    4             <artifactId>wagon-maven-plugin</artifactId>
    5             <version>2.0.0</version>
    6         </dependency>

    2.在pom的build节点添加wagon-ssh

    1      <extensions>
    2             <extension>
    3                 <groupId>org.apache.maven.wagon</groupId>
    4                 <artifactId>wagon-ssh</artifactId>
    5                 <version>2.10</version>
    6             </extension>
    7         </extensions>

    3.在plugins下添加配置

     1         <plugins>
     2             <!-- 执行的顺序 和命令的顺序有关系,我们这边使用第一个 先执行command 再进行发包  -->
     3             <!-- mvn clean package  wagon:sshexec wagon:upload-single -->
     4             <!-- mvn clean package wagon:upload-single wagon:sshexec -->
     5             <plugin>
     6                 <groupId>org.codehaus.mojo</groupId>
     7                 <artifactId>wagon-maven-plugin</artifactId>
     8                 <version>1.0</version>
     9                 <configuration>
    10                     <fromFile>target/${pack-name}</fromFile>
    11                     <url>scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}</url>
    12                     <displayCommandOutputs>true</displayCommandOutputs>
    13                     <commands>
    14                         <!-- >command>kill -9 `ps -ef |grep ${remote-name}|grep -v "grep" |awk '{print $2}'`</command -->
    15                         <command>rm -rf ${service-path}/*</command>
    16                         <command>${start-shell} ${remote-file}</command>
    17                         <command><![CDATA[netstat -nptl]]></command>
    18                         <command><![CDATA[ps -ef | grep ${remote-name} | grep -v grep]]></command>
    19                     </commands>
    20                 </configuration>
    21             </plugin>
    22         </plugins>

    其中 

    <fromFile>为target下的war包 全路径名称   如 target/demo.war

    <url>为服务器路径地址 如: scp://root:123456@192.168.1.96:22/usr/local/tomcat/demo/webapps  

    <commands>为在服务器执行的命令集合,<command>为执行的命令,这些命令需要根据具体的情况来写,比如删除war包,重启服务之类的操作

    也可以跟我一样 通过参数化的方式来指定 

     1     <properties>
     2           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     3           <service-path>/usr/local/tomcat/demo/webapps</service-path>
     4           <pack-name>NACPortal_${package.environment}.war</pack-name>
     5           <remote-addr>192.168.1.96:22</remote-addr>
     6           <remote-username>root</remote-username>
     7           <remote-passwd>123456</remote-passwd>
     8           <remote-name>NACPortal</remote-name>
     9           <start-shell>/usr/local/tomcat/start_tomcat.sh</start-shell>
    10           <remote-file>/usr/local/tomcat/demo</remote-file>
    11       </properties>

    至此配置完成。

    4.在终端或者pom.xml文件相同目录下执行以下mvn命令

    最后需要通过执行以下命令来完成部署的最后一步 

    命令一: mvn clean package wagon:sshexec wagon:upload-single


    命令二:mvn clean package wagon:upload-single wagon:sshexec

     通过测试我发现 两个命令有执行顺序上的区别,命令一先执行配置指定的<commands>命令后进行上传war包,命令二相反;

     具体使用哪个,还是要按照实际的命令情况使用,通常使用命令一即可

    有道词典
    <!-- shiro 版本 - ...
    详细X
      < !——shiro版本- - >   utf - 8 < project.build.sourceEncoding > < / project.build.sourceEncoding >
    有道词典
    mvn clean packa ...
    详细X
      mvn清洁包马车:sshexec马车:upload-single - - >   4 < !——mvn清洁包马车:upload-single马车:sshexec

  • 相关阅读:
    css优化总结
    几种常用的图片格式
    css布局总结
    第四章复习题
    4.9,4.10
    4.8
    4.7指针
    libffi
    代理模式
    Redis 汇总
  • 原文地址:https://www.cnblogs.com/zluckiy/p/10220030.html
Copyright © 2020-2023  润新知