投稿    登录
欢迎加入Nice Coder,与众多Coder分享经验,群号:530244901

【原创】利用maven插件实现远程部署

后台技术 wjx@admin.cc 184浏览 0评论

我们在进行项目开发的过程中,经常会把项目部署到远程服务器。如果每次都是通过ftp替换掉更新的文件,然后重启Tomcat。未免显得太繁琐,本着“能让机器去做的事情决不让人做”的原则。出现了很多自动化部署的解决方案,本文介绍两种基于maven插件的部署方案,利用该插件即可实现自动化部署。本文以Tomcat8.5为例。

cargo插件:

先配置远程服务器的$tomcat/conf/tomcat-user.xml文件。添加以下语句:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

然后配置$tomcat/webapps/manager/META-INF/context.xml文件

<Context antiResourceLocking="false" privileged="true" >
<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

在这里把value标签注释掉,表示可以允许任何ip进行连接。
最后是在pom.xml中添加以下插件:

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <version>1.5.0</version>
  <configuration>
    <container>
      <containerId>tomcat8x</containerId>
      <type>remote</type><!--标明是远程部署-->
    </container>
    <configuration>
      <type>runtime</type><!--运行过程中部署-->
      <properties>
        <cargo.protocol>http</cargo.protocol>
        <cargo.hostname>wangjingxin.top</cargo.hostname><!--域名-->
        <cargo.servlet.port>8080</cargo.servlet.port><!--端口号-->
        <cargo.remote.username>admin</cargo.remote.username><!--Tomcat manager用户名-->
        <cargo.remote.password>123456</cargo.remote.password><!--Tomcat manager密码-->
        <cargo.remote.uri>http://115.28.61.167:8080/manager/text</cargo.remote.uri><!--远程服务器ip/manager/test-->
      </properties>
    </configuration>
  </configuration>
</plugin>

配置好该插件之后。先用mvn package 命令打好war包,然后用mvn cargo:redeploy命令上传到服务器上即可。

以上就是通过cargo插件进行远程部署的全过程。

tomcat插件

      使用Tomcat插件也是需要配置tomcat-user.xml,然后在pom.xml中配置以下插件(这里以Tomcat8x为例)

<plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <url>http://115.28.61.167:8080/manager/text</url>
          <username>admin</username>
          <password>123456</password>
          <ignorePackaging>true</ignorePackaging>
        </configuration>
      </plugin>

当然,也要允许可以有外部ip访问manager

需要部署的话,直接执行命令

mvn tomcat7:deploy

如果出现了

I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error

说明是之前已经部署过,再次部署就会出错,这时候需要执行以下命令

mvn tomcat7:redeploy

转载请注明:王镜鑫的个人博客 » 【原创】利用maven插件实现远程部署

喜欢 (5)or分享 (0)

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的