Springboot基于maven打包分離lib及resource
之前在部署Spring Boot項目時,經常因為只修改了一小處代碼、或者只更新了某個jar包,但是卻需要將整個項目重新打包、上傳、部署,整個包一般都會達到40-60M,每次都重復這個操作真的很耗費時間,因此就想是否能夠將依賴lib與項目代碼分離出來,每次部署只需要發布代碼即可。
項目發版,為了應對更新多變的依賴jar包,實現增量或替換依賴jar包,越來越多的企業實現源代碼和依賴jar包和依賴配置分離,更好的應對復雜多變的現場和生產環境,使用maven打包配置如下:
<build><plugins> <!-- 指定啟動類,將依賴打成外部jar包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties這兩個文件 --> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <!-- 是否要把第三方jar加入到類構建路徑 --> <addClasspath>true</addClasspath> <!-- 外部依賴jar包的最終位置 --> <classpathPrefix>lib/</classpathPrefix> <!-- 項目啟動類 --> <mainClass>com.mozi.mq_monitor.MqMonitorApplication</mainClass> </manifest> </archive> </configuration> </plugin> <!--拷貝依賴到jar外面的lib目錄--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-lib</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>target/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <includeScope>compile</includeScope> </configuration> </execution> </executions> </plugin> <!--指定配置文件,將resources打成外部resource--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 指定配置文件目錄,這樣jar運行時會去找到同目錄下的resources文件夾下查找 --> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <!-- 打包時忽略的文件(也就是不打進jar包里的文件) --> <excludes> <exclude>*.yml</exclude> <exclude>*.xml</exclude> <exclude>mqConfig/*.xml</exclude> </excludes> </configuration> </plugin> <!-- 拷貝資源文件 外面的resource目錄--> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 資源文件輸出目錄 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin></plugins></build>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: