ICE.ICE|

韩憨

园龄:4年7个月粉丝:42关注:47

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

https://dandelioncloud.cn/article/details/1489379549476671490

1.在maven中添加依赖

复制代码
            <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>2.0.2</version>
            </dependency>
复制代码

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

复制代码
<build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>2.8</version>
            </extension>
        </extensions>
</build>
复制代码

3.在plugins下添加配置

复制代码
<plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>2.0.2</version>
                <executions>
                    <!-- ============ ============ ============ 测试 ============ ============ ============-->
                    <execution>
                        <id>devupload-one</id>
                        <!-- 运行package打包的同时运行upload-single和sshexec -->
                        <!--phase/阶段-->
                        <phase>package</phase>
                        <goals>
                            <goal>upload-single</goal>
                            <goal>sshexec</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                            <!-- 拷贝目录下(执行目录) target目录下的jar包 -->
                            <fromFile>target/lib/java-3.4.0.jar</fromFile>
                            <!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹-->
                            <url>scp://${user}:${password}@${ip}/home/soft/fultron/lib</url>
                            <!-- 命令列表 可以在传输完成后执行 -->
                            <commands>
                                <command>sh /home/soft/startsystem.sh restart</command>
                            </commands>
                            <!-- 显示运行命令的输出结果 -->
                            <displayCommandOutputs>true</displayCommandOutputs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>devupload-all</id>
                        <!-- 运行package打包的同时运行upload-single和sshexec -->
                        <phase>package</phase>
                        <goals>
                            <goal>upload</goal>
                            <goal>sshexec</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                            <!-- 拷贝目录下(执行目录) target目录下的jar包 -->
                            <fromDir>target/lib</fromDir>
                            <!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹-->
                            <url>scp://${user}:${password}@${ip}/home/soft/fultron/lib</url>
                            <commands>
                                <command>sh /home/soft/startsystem.sh restart</command>
                            </commands>
                        </configuration>
                    </execution>
                    <!-- ============ ============ ============ 生产 ============ ============ ============-->
                    <execution>
                        <id>produpload-one</id>
                        <!-- 运行package打包的同时运行upload-single和sshexec -->
                        <!--phase/阶段-->
                        <phase>package</phase>
                        <goals>
                            <goal>upload-single</goal>
                            <goal>sshexec</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                            <!-- 拷贝目录下(执行目录) target目录下的jar包 -->
                            <fromFile>target/lib/java-3.4.0.jar</fromFile>
                            <!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹-->
                            <url>scp://root:password@ip/data/soft/lib</url>
                            <!-- 命令列表 可以在传输完成后执行 -->
                            <commands>
                                <command>sh /data/soft/startsystem.sh restart</command>
                            </commands>
                            <!-- 显示运行命令的输出结果 -->
                            <displayCommandOutputs>true</displayCommandOutputs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>produpload-all</id>
                        <!-- 运行package打包的同时运行upload-single和sshexec -->
                        <phase>package</phase>
                        <goals>
                            <goal>upload</goal>
                            <goal>sshexec</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                            <!-- 拷贝目录下(执行目录) target目录下的jar包 -->
                            <fromDir>target/lib</fromDir>
                            <!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹-->
                            <url>scp://root:password@ip/data/soft/lib</url>
                            <commands>
                                <command>sh /data/soft/startsystem.sh restart</command>
                            </commands>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
复制代码

4.说明

 <skip>true</skip> 来控制是否运行execution,true 表示不执行,false 表示执行

 <fromFile>target/lib/java-3.4.0.jar</fromFile>           本地目录,从哪上传,这里指定不是目录,是单个文件

 <fromDir>target/lib</fromDir>                                   本地目录,从哪上传,这里指定的是目录,不是单个文件

 <goal>upload</goal>  <goal>upload-single</goal> 表示上传,其中upload只能上传目录,upload-single只能上传单独的文件 

 <goal>sshexec</goal>                                             表示执行 服务器命令

 <excludes>logback-spring.xml</excludes>-->         过滤你不想要的文件

 <toDir>/home/hdkg/ATC/temp</toDir>                    如果没有toDir,url要写完整路

 <url>scp://root:password@ip/data/soft/lib</url>      服务器IP地址

 <displayCommandOutputs>true</displayCommandOutputs>     是否显示Shell命令

5.打包

打包命令 mvn clean install

如果没有以下配置

               <goals>
                            <goal>upload</goal>
                            <goal>sshexec</goal>
                        </goals>

则需要按配置改成下面

mvn wagon:upload-single -f upload.xml 这个是上传单独文件。例如jar包这样一类的

mvn wagon:upload -f upload.xml 这个是上传多文件,可以整个目录

6.参考

官网参考地址 http://www.mojohaus.org/wagon-maven-plugin/upload-single-mojo.html

主要提供如下几个goal

wagon:upload-single uploads the specified file to a remote location.

wagon:upload uploads the specified set of files to a remote location.

wagon:download-single downloads the specified file from a remote location.

wagon:download downloads the specified set of files from a remote location.

wagon:list lists the content of a specified location in a remote repository.

wagon:copy copies a set of files under a Wagon repository to another.

wagon:merge-maven-repos merges , including metadata, a Maven repository to another.

wagon:sshexec Executes a set of commands at remote SSH host.

本文作者:韩憨

本文链接:https://www.cnblogs.com/hanby/p/16737235.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   韩憨  阅读(522)  评论(0编辑  收藏  举报
//看板娘

哥伦布

评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 隔离 (Studio Live Duet) 陈凯咏,林家谦
  2. 2 明知做戏 吴雨霏
  3. 3 残酷游戏 卫兰
  4. 4 你,好不好? 周兴哲
  5. 5 我可以 蔡旻佑
  6. 6 云烟成雨 房东的猫
  7. 7 说散就散 JC 陈咏桐
  8. 8 我配不上你 夏天Alex
  9. 9 不再联系 夏天Alex
  10. 10 等我先说 夏天Alex
  11. 11 我知道他爱你 夏天Alex
  12. 12 多想在平庸的生活拥抱你 隔壁老樊
  13. 13 这一生关于你的风景 隔壁老樊
  14. 14 我曾 隔壁老樊
  15. 15 关于孤独我想说的话 隔壁老樊
  16. 16 过客 周思涵
  17. 17 备爱 周思涵
  18. 18 嚣张 en
  19. 19 海口 后弦
明知做戏 - 吴雨霏
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : Xia Zhi

作曲 : Fong Man Leung

编曲 : 吴国恩

监制 : Gary Chan

等你的汽水喝一半给你加片薄冰

等你的桌面满泻我总会打理重整

不想纯情 不够聪明

你未发现我的身影

得我帮你依照编码整理家里电影

得我帮你依照编码整理家里电影

只会得我一个帮你选购喜爱铃声

天天如常 估你心情

等一个眼神求证 一闪擦过如流星

怎么我为我做过的感到惊怕

就像爱吗我也不肯定恐怕

我以为存在吗 千变万化

从来不肯开口可相信吗 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你毫无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

即使你未太在意不感到惊讶

即使你未太在意不感到惊讶

现在要说爱你请准备招架

勇气还存在吗 不要害怕

随时真的胆敢亲手送花 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你亳无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

不过不要阻我紧张你

如何令你愉快让我办妥为你准备

喜爱沉默冷静的你还是自信的你

仍愿意为你造一些惊喜

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过途人目光不理

期待贴着你的手臂 无须做戏

等你喜爱等你不爱就凭摘毫验证

等你喜爱等你不爱就凭摘毫验证

想爱不爱偏爱不理亦同样难划清

天天如常 估你心情

不想扑索来求证 争取过趁还年青

终于你下决定来答应 太动听

点击右上角即可分享
微信分享提示