最近在对接devops的项目, 今天学到了一个新的技能, 特意跟大家分享一下, spring-boot-maven-plugin
具体这个插件是做什么用的, 自己也没有上心, 今天特意在官网上查询了一下,终于知道了答案, 特意记录下来, 和大家一起分享。
在我们的devops项目接入中, 如果需要接入, 我们都需要在pom文件中加入如下的配置:
<build>
<finalName>${project.name}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
</plugins>
</build>
那这个插件到底起什么作用嗯?我们可以参考官网:https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-install , 讲的是比较明白的。
作为一个老运维出生, 如果我们安装一个服务, 为了方便管理, 我们都想通过
Centos6.X:service {应用} start|stop|restart|reload 等一些列的操作进行服务管理,
Centos7.X:是可以通过systemctl start|stop|restart {应用}
我们不需要记住那么多的启动参数, 只需要知道应用名字就可以快速启动。
那这个插件其实就是给我们解决这个问题。
centos6.X
我们只需要配置如上的参数, 我们在编译的时候, 就回打包成我们需要的服务, 如果我们打包的jar包的名字是myapp.jar, 那我们直接进行如下的操作就可以了
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
service myapp start
centos7.X
如果我们想使用systemctl的操作, 我们只需要在 /etc/systemd/system
下创建myapp.service
[Unit]
Description=myapp
After=syslog.target
[Service]
User=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
启动
systemctl enable myapp.service
其实看完以后, 对于我这个老运维出生的开发来说, 还是有点懵逼的, 我们打完的包, 居然做个软连接就可以用, 简直是颠覆了我的认知,今天还特意拿出来看了看myapp.jar文件, 文件内容如下:
这个文件大概300行的位置, 前面是启动脚本, 后面是二进制包, 这样通过软连接的方式, 是可以直接使用的。