java assembly 打包_使用Maven的assembly插件实现自定义打包

一、背景

最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有木有。本文分享该插件的配置以及微服务的统一打包方式。

二、配置步骤及其他事项

1.首先我们需要在pom.xml中配置maven的assembly插件

1

2

3

4 org.apache.maven.plugins

5 maven-jar-plugin

6 2.3.1

7

8

9

10

11 com.hafiz.Runner

12

13 true

14

15 ./

16

17

18

19

20

21 org.apache.maven.plugins

22 maven-assembly-plugin

23

24

25 make-assembly

26 package

27

28 single

29

30

31 ${project.name}

32 src/main/assembly/assembly.xml

33

34

35

36

37

38

2.接着我们在src/main/assembly文件中配置assembly.xml文件

1

2

3

4 tar.gz

5

6

7 true

8

9

10

11 true

12 lib

13

14 runtime

15

16

17

18

19 src/main/bin

20 /

21

22

23

其中,生成的lib文件夹下放该项目的所有依赖以及该服务jar包,src/main/bin文件夹下我们一般放start.sh和stop.sh两个脚本文件用来开启和关闭该服务,打包后直接放到根目录下。生成的tar.gz文件的名字为:[maven-assembly-plugin插件中配置的finalName]-[assembly.xml配置的id(若assembly中没有指定id,则只有前半部分)].

这里面涉及到如何生成可执行的jar包,具体参见:

3.项目目录结构

ab942eaaca31f609e8983c25633c26b1.png

其中红色方框内就是通过assembly插件是生成的tar.gz文件,解压后里面的结构如下:

99bfe96e7ecf3dc3145d563b5a34f44b.png

其中lib目录下是本项目生成的可执行jar包以及它的所有依赖jar包。若assembly插件中配置为false,则不会生成assembly-demo文件夹,直接就是lib文件夹以及两个脚本文件。

4.打包方式思考

我们通过这种方式,每个微服务就是一个以服务名称命名的tar.gz文件,解压后里面lib目录下是该服务生成的可执行jar包以及它所有的依赖jar包,我们直接运行根目录下start.sh和stop.sh两个脚本文件来进行服务的开启和关闭。风格统一,简单明了!

三、总结

随着微服务的越来越火,我们将服务进行细粒度拆分后,也需要很好的把服务的打包以及部署方式进行统一,这样我们就可以走自动化发布工具来进行统一服务的管理和部署,使得越来越方便。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值