在发布阶段,将整个工程打包成一个可执行jar,jar中包含所有的依赖jar,然后可以通过java -jar xxx.jar即可执行,这在虚机部署的场景会带来更多的便利性
借助spring-boot-maven-plugin可以方便地实现打包功能,spring-boot-maven-plugin与spring框架本身并没有任何耦合,是任何工程均可使用的一个插件
但是spring-boot-maven-plugin默认不支持定制classpath,导致放在磁盘上的配置文件等等资源无法加载,所以需要配合maven-jar-plugin来定制classpath
在pom.xml中声明:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
|
CSE/ServiceComb工程用这种方式打包后,将microservice.yaml放在jar所在目录,即可实现对jar包中的microservice.yaml进行增量覆盖