【亲测】在Eclipse使用Maven自动打包部署到服务器上

前言

本来我想用jekins+docker来自动打包部署到服务器上,但是docker研究的不深,遇到问题就GG了,所以换一种简单的方式来打包部署。

思考

在自动打包部署之前,我们需要分析一下如何打包,并解决下面几个问题:

  1. 如何使用Maven进行打包?
  2. 如何使用Maven自动部署到远程服务器上?

实战

首先我们解决第一个问题,如何使用Maven进行打包?

  • Maven中通过插件来进行打包,一个网站项目必然存在资源(xml、properties等)和java文件,所以可以使用maven-resources-plugin来处理资源文件以及maven-compiler-plugin来编译java文件
  • 在pom.xml文件中添加如下代码:

        ref-comet
        
            
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                false
            
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                
                false
            
        
        
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
                
                    UTF-8
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.2
                
                    1.7
                    1.7
                    UTF-8
                
            
        

然后解决我们第二个问题,Maven怎么打包到远程服务器?

  • 首先我们要保证本地可以访问到远程服务器,所以需要在tomcat中配置用户权限,并需要在本地浏览器测试远程Tomcat服务器是否可以访问
  • 找到远程Tomcat服务器的tomcat/conf/tomcat-users.xml,在tomcat-users节点中,添加如下子节点,username和password是需要登录到远程Tomcat的用户名和密码。注意:正式环境,请确保用户名和密码使用特殊字符,不易被破解







  • 成功访问(如果是Tomcat8.5.x版本,请移步到坑点)


    访问192.168.21.10:8081

    点击Manager App
  • 在pom.xml文件中配置打包到远程服务器的必需参数,大家可以把这段代码和上面代码整合到一起去

        ref-comet
        
            
                
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.2
                    
                        
                        
                        
                         
                        
                        tomcat
                        
                        tomcat
                    
                
            
        
    

最后一步,直接通过eclipse来发布,右键项目->Run As->Maven build...->设置goals:clean install tomcat7:deploy


发布

坑点

  1. Tomcat8.5在浏览器上测试登录远程Tomcat Manager时,出现”403 Access Denied”
    Tomcat8.5加入了ip授权机制,默认仅支持本地访问,所以会抛出权限不足异常
    解决方式:
    找到tomcat/webapps/manager/META-INF/的context.xml文件,注释掉下面这一段或者添加\d+.\d+.\d+.\d+,来支持其他ip访问当前tomcat
# 
  1. 上传出现异常”I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error”
  • 服务器上已经存在了xxx.war,必须先删除,否则会报出
  • 防火墙未关闭或未把远程服务器上的端口放开,放开即可,保证本地机浏览器可以打开远程tomcat
  1. 正式服务器不太建议用这种方式,不太安全,一旦密码泄露,后果可想而知

参考博客

https://blog.csdn.net/qq_30264689/article/details/79471621

你可能感兴趣的:(【亲测】在Eclipse使用Maven自动打包部署到服务器上)