1.項目通過maven引入的jar多了之后,用maven打出的jar會非常龐大,我的是因為引入了ffmpeg的相關jar,所以,每次上傳服務更新都要傳輸好久,修改maven打包方式,改為源碼和lib分離模式
2.maven的pom.xml配置如下
<build><plugins><!-- Step 1: 只打包源碼(不包含依賴) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.4.0</version><configuration><archive><manifest><mainClass>com.xxx.springboot.xxxxxApplication</mainClass> <!-- 替換為你自己的主類 --><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><!-- 不上maven管理的jar引入方式 --><Class-Path>lib/DmJdbcDriver18-1.0.jar lib/encrypt-body-spring-boot-starter-1.2.3.jar</Class-Path></manifestEntries></archive></configuration></plugin><!-- Step 2: 使用 spring-boot-maven-plugin 打包并提取依賴到 lib/ --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals><configuration><skip>true</skip> <!-- 禁用默認 repackage --></configuration></execution><execution><id>build-info</id><goals><goal>build-info</goal></goals></execution></executions></plugin><!-- Step 3: 提取依賴到 target/lib/ --><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}/lib</outputDirectory><overWriteReleases>false</overWriteReleases><overWriteSnapshots>false</overWriteSnapshots><overWriteIfNewer>true</overWriteIfNewer></configuration></execution></executions></plugin><!-- Step 4 (可選): 創建最終發布的 dist 文件夾 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><executions><execution><phase>package</phase><goals><goal>run</goal></goals><configuration><target><mkdir dir="${project.build.directory}/dist"/><copy file="${project.build.directory}/${project.build.finalName}.jar"tofile="${project.build.directory}/dist/chenzhou.jar"/><copy todir="${project.build.directory}/dist/lib"><fileset dir="${project.build.directory}/lib"/></copy></target></configuration></execution></executions></plugin></plugins></build>
3.對于非maven倉庫中的包處理方式
<!-- 非maven倉庫包 -->
<dependency><groupId>com-dm</groupId><artifactId>DmJdbcDriver18</artifactId><version>1.0</version><scope>system</scope><systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
<!-- 指定jar位置,多個以空格分開,對于不上版本結尾的名稱,打包放入lib后會自動增加1.0,所以,引入jar寫入也要增加
例如:達夢數據庫驅動包,項目實際引入DmJdbcDriver18.jar
在Class-Path中的配置要為:DmJdbcDriver18-1.0.jar
-->
<manifestEntries><Class-Path>lib/DmDialect-for-hibernate6.1-1.0.jar lib/DmJdbcDriver18-1.0.jar</Class-Path>
</manifestEntries>
如有不妥之處,請諒解!