发布方式

手工方式:需要做一系列的工作,包括打WAR包,上传到服务器,重启服务器,删除旧文件等

自动方式:一条命令完成以上所有过程

服务器环境

centos7.3和tomcat8,关于centos的应用,涉及LINUX方面的知识以后有机会再讲,这里假设已经在centos上部署好了tomcat

pom.xml

		<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/test-1.0.war</fromFile>
<toFile>test.war</toFile>
<url>scp://wb:123@192.168.150.128/home/wb/pro/tomcat/webapps</url>
<commands>
<command>/home/wb/pro/tomcat/bin/shutdown.sh</command>
<command>rm -rf /home/wb/pro/tomcat/webapps/test</command>
<command>/home/wb/pro/tomcat/bin/startup.sh</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
</plugins>

<extensions>:是maven扩展构件

wagon-maven-plugin:是自动上传的插件

<fromFile>:需要发布的本地文件名

<toFile>:发布到服务器后的文件名

<url>:协议://centos用户名:密码@服务器IP/tomcat的webapps目录,这是url的基本格式,发布到远程tomcat的webapps下

<commands>:按顺序执行linux命令,第一条是关闭tomcat,第二条是删除旧项目文件,第三条是启动 tomcat。

<displayCommandOutputs>:true是显示命令执行结果

执行命令

在eclipse中右键项目--运行方式--maven build...--goals中输入 package wagon:upload-single wagon:sshexec,运行,运行过程中可能会需要你输入一个yes--回车

这个命令的意思

package:打war包

wagon:upload-single:上传war包到pom.xml中的url,会自动覆盖url中旧的war包

wagon:sshexec:执行<commands>中的命令

执行结果:将本地修改过的项目代码,通过插件配置,自动打成WAR包上传到服务器,自动删除旧项目,自动重启tomcat



maven(17)-自动发布到远程linux服务器的更多相关文章

  1. Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器

    我们知道,docker能实现应用打包隔离,实现快速部署和迁移.如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构 ...

  2. Jenkins自动化构建vue项目然后发布到远程Linux服务器

    部署Jenkins参照另一篇博客: centos7安装Jenkins及其卸载 一.jenkins相关插件的安装 1.安装Publish Over SSH插件用于SSH连接远程的服务器. 登录 jenk ...

  3. vscode实现远程linux服务器上Python开发

      最近需要训练一个生成对抗网络模型,然后开发接口,不得不在一台有显卡的远程linux服务器上进行,所以,趁着这个机会研究了下怎么使用vscode来进行远程开发.   1 配置免密登录¶   (1)在 ...

  4. jprofiler_监控远程linux服务器的JVM进程(实践)

    几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...

  5. Sublime Text编辑远程Linux服务器上的文件

    sublime有个叫sftp的插件,可以通过它直接打开远程机器上的文件进行编辑,并在保存后直接同步到远程linux服务器上. 用Package Control安装插件 按下Ctrl+Shift+P调出 ...

  6. jprofiler_监控远程linux服务器的JVM进程(转 非常棒)

    几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...

  7. Linux下不借助工具实现远程linux服务器上传下载文件

    # Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...

  8. windows客户端如果通过cmd窗口连接到远程linux服务器,可以使用telnet;

     linux系统打开telnet端口的方法 2016-03-11 16:02:25 标签:linux telnet 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. ...

  9. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

随机推荐

  1. Homebrew下安装的软件自启动服务管理工具:Launchrocket

    帮助管理Homebrew安装的服务的软件,比如使用Homebrew安装的Mysql.Redis.MongoDB,传统方式需要使用命令行的命令,而使用LaunchRocket则可以在图形界面中进行管理. ...

  2. 如何对react进行性能优化

    React本身就非常关注性能,其提供的虚拟DOM搭配上DIff算法,实现对DOM操作最小粒度的改变也是非常高效的,然而其组件的渲染机制,也决定了在对组件更新时还可以进行更细致的优化.  react组件 ...

  3. exe4j安装及注册

    1 安装 1 下载 exe4j下载地址:http://www.ej-technologies.com/download/exe4j/files.php, 进入网址,选择需要的版本,点击下载就可以了. ...

  4. Hive 外部表新增字段或者修改字段类型等不生效

    标题比较笼统,实际情况是: 对于Hive 的分区外部表的已有分区,在对表新增或者修改字段后,相关分区不生效. 原因是:表元数据虽然修改成功,但是分区也会对应列的元数据,这个地方不会随表的元数据修改而修 ...

  5. tomcat 控制台乱码问题

    环境:win7 + tomcat 8.5 问题描述:web端一切正常,不管是返回页面的数据还是控制台打印的日志,都没乱码,给app提供的api接口返回乱码,然后就去百度,像什么 在tomcat的ser ...

  6. Jenkins 中创建项目时没有Maven项目怎么办

    如果在创建项目时候,没有“创建一个Maven 项目”的选项. 你需要安装Maven项目插件:Maven Integration plugin . 点击“可选插件”  然后在右边的过滤输入框中输入搜索关 ...

  7. Metronic 对话 chat

    http://keenthemes.com/preview/metronic/theme/admin_1/index.html: jquery让滚动条默认在最底部:$('#content').scro ...

  8. Sublime Text - 在浏览器打开当前文件

    有没有办法通过快捷键在指定的浏览器中打开当前文件? 有点怀念Dreamweaver的F12? 其实Sublime也可以实现这一效果,而且不需要安装任何插件. 进入Tools -> Build S ...

  9. C# List<T> 对于某个字段去重复

    gradeSubjectItem.teacher = teacherInfos.Where((x, i) => teacherInfos.FindIndex(z => z.guid == ...

  10. 撩课-Java每天10道面试题第3天

    21.final, finally, finalize的区别 1.final修饰符(关键字). 被final修饰的类, 就意味着不能再派生出新的子类, 不能作为父类而被子类继承. 因此一个类不能既被a ...