前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >wagon插件使用

wagon插件使用

作者头像
迹_Jason
发布2019-05-29 18:18:01
1.1K0
发布2019-05-29 18:18:01
举报
文章被收录于专栏:迹_Jason的AppZone迹_Jason的AppZone

wagon是maven插件中的一种,其作用是去除我们部署时繁复的步骤,不用再手动上传jar包或者war包到指定服务器路径下面。


问题

有什么用?

怎么用?

有什么优势?

使用

pom.xml

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <version>1.0</version>
            <configuration>
              <!--这里的id与之后的setting.xml配置项中的要一致 -->
                <serverId>demo-test</serverId>
              <!--本地包路径 -->
                <fromDir>target/</fromDir>
              <!--上传哪些包 -->
                <includes>${project.artifactId}.jar</includes>
              <!--包保存到服务器哪个路径下面,注意是scp,要支持这个命令才行 -->
                <url>scp://172.168.1.11:22/opt/micservice</url>
              <!--服务器目标路径,与url配合使用 -->
                <toDir>apps/${project.artifactId}</toDir>
              <!--因为存在服务器的重启之类的操作,wagon也支持使用shell命令,可以有多个command标签哦,根据先后顺序执行-->
                <commands>
                    <command>cd /opt/micservice/ ; ./dev restart ${project.artifactId} test</command>
                </commands>
              <!-- 显示运行命令的输出结果 -->
	<displayCommandOutputs>true</displayCommandOutputs>
            </configuration>
        </plugin>
    </plugins>
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.8</version>
        </extension>
    </extensions>
</build>

setting.xml

代码语言:javascript
复制
<servers>
    <server>
        与上面的serverId一致
        <id>demo-test</id>
        <username>username</username>
        <password>password</password>
    </server>
</servers>

配置完成后,运行命令:

代码语言:javascript
复制
mvn clean package wagon:upload wagon:sshexec

wagon:upload-single是上传jar或者war包

wagon:sshexec是执行配置中的shell命令

如果不想执行上面的这么长串命令,也可以使用execution

代码语言:javascript
复制
<build>
	<extensions>
		<extension>
			<groupId>org.apache.maven.wagon</groupId>
			<artifactId>wagon-ssh</artifactId>
			<version>2.8</version>
		</extension>
	</extensions>
	<plugins>
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>wagon-maven-plugin</artifactId>
			<version>1.0</version>
			<executions>
				<execution>
					<id>upload-deploy</id>
					<!-- 运行package打包的同时运行upload-single和sshexec-->
					<phase>package</phase>
					<goals>
						<goal>upload-single</goal>
						<goal>sshexec</goal>
					</goals>
					<configuration>
						<serverId>mylinuxserver</serverId>
						<fromFile>target/javawebdeploy.war</fromFile>
						<url>scp://192.168.20.128/coder/tomcat/apache-tomcat-7.0.55/webapps</url>
						<commands>
							<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>
							<command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>
							<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>
						</commands>
						<displayCommandOutputs>true</displayCommandOutputs>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

以上mvn clean package 来代替 mvn clean package wagon:upload-single wagon:sshexec,但个人觉得不是特别适合开发时期,我觉得还是使用命令的方式执行,或者通过自己写一个shell文件,需要的时候执行一下即可。

Tips

关于一些goals

其他的标签

skip属性,boolean类型,默认是true,作用是忽略execution

优势

  • 去除了发布的重复动作,直接一个命令就可以完成
  • 将人为的错误降低了,工作更加高效

链接

官方文档

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 使用
  • Tips
  • 优势
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档