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。