Springboot基于maven打包分離lib及resource
之前在部署Spring Boot項目時,經(jīng)常因為只修改了一小處代碼、或者只更新了某個jar包,但是卻需要將整個項目重新打包、上傳、部署,整個包一般都會達到40-60M,每次都重復這個操作真的很耗費時間,因此就想是否能夠?qū)⒁蕾噇ib與項目代碼分離出來,每次部署只需要發(fā)布代碼即可。
項目發(fā)版,為了應對更新多變的依賴jar包,實現(xiàn)增量或替換依賴jar包,越來越多的企業(yè)實現(xiàn)源代碼和依賴jar包和依賴配置分離,更好的應對復雜多變的現(xiàn)場和生產(chǎn)環(huán)境,使用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加入到類構(gòu)建路徑 --> <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>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. arcgis js完整懸停效果實現(xiàn)demo2. .Net中Task Parallel Library的基本用法3. JavaScript實現(xiàn)form提交,回車提交URL地址偽靜態(tài) 原創(chuàng)4. Android 通過cmake的方式接入opencv的方法步驟5. ASP.NET Core自定義中間件的方式詳解6. 《CSS3實戰(zhàn)》筆記--漸變設計(二)7. css代碼優(yōu)化的12個技巧8. ASP.NET MVC使用typeahead.js實現(xiàn)輸入智能提示功能9. 使用IDEA編寫jsp時EL表達式不起作用的問題及解決方法10. jsp實現(xiàn)登錄界面
