1.概要
我们在构建springboot 程序的时候,可以将所有的文件打包成一个大的文件,这个使用起来还是很方便的,但是有些情况下不是很方便,比如 程序需要经常更新的时候,通过网络传输就比较慢,还有比如,我们有一些的微服务,这个时候大部分的jar都是相同的,这个时候如果,只打包我们自己开发的部分,那么这个包就会很小。其实我们可以使用maven 分离打包的技术将 依赖和资源文件分离打包。
2. 操作步骤
2.1 我们编辑 pom.xml 文件
我们在pom.xml 中增加一个 profile,下面的代码就是负责分离打包。
<profiles>
<profile>
<id>分离打包</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<!-- 配置加入依赖包 -->
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
<!-- Spring Boot 启动类(自行修改) -->
<mainClass>com.misoft.JPaasDemoApplication</mainClass>
</manifest>
<manifestEntries>
<!-- 外部资源路径加入 manifest.mf 的 Class-Path -->
<Class-Path>resources/</Class-Path>
</manifestEntries>
</archive>
<!-- jar 输出目录 -->
<outputDirectory>${project.build.directory}/fastjar/</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<!-- 复制依赖 -->
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 依赖包 输出目录 -->
<outputDirectory>${project.build.directory}/fastjar/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<!-- 复制资源 -->
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<!-- 资源文件 输出目录 -->
<outputDirectory>${project.build.directory}/fastjar/resources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
上面代码的意思是
- maven-compiler-plugin
使用 1.8 对对代码进行编译。 - maven-jar-plugin
使用 jar 插件,打包我们自己开发的程序 - maven-dependency-plugin
使用依赖插件,将我们的依赖包拷贝到 fastjar/lib 目录 - maven-resources-plugin
使用资源插件将资源文件考本到资源目录下面。
2.2 打包
增加 profile 后 我们可以在IDEA 中看到
打包时,勾选分离打包。
打包后:
我们也可以使用命令行进行打包。
mvn clean package -P 分离打包
2.3 启动程序
因为打包成份数的文件了,我们怎么启动这个程序呢?
我们可以使用如下命令进行启动。
java -Xms256m -Xmx512m -Xmn256m -jar ./jpaas-demo.jar --nacos.address=localhost:8848 --nacos.namespace=local --spring.config.additional-location=resources/ --logging.config=resources/logback-spring.xml
启动后,我们可以观察nacos。