现在的项目结构是业务包引用comomn包,common包里又引用了很多其他的jar包,导致业务包打包出来动则就是一百甚至两百兆,现在要做到把公共的包放出来,放到一个单独的文件夹,业务包里只放业务代码。
现在只需要修改maven build节点如下:
<build><finalName>pager</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--表示编译版本配置有效--><fork>true</fork><!--引入第三方jar包时,不添加则引入的第三方jar不会被打入jar包中--><includeSystemScope>true</includeSystemScope><!--排除第三方jar文件--><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include></includes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>prepare-package</phase><goals><goal>copy-dependencies</goal></goals><configuration><!--复制到哪个路径,${project.build.directory} 缺醒为 target,其他内置参数见下面解释--><outputDirectory>${project.build.directory}/lib</outputDirectory><overWriteReleases>true</overWriteReleases><overWriteSnapshots>true</overWriteSnapshots><overWriteIfNewer>true</overWriteIfNewer></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><!-- 是否要把第三方jar加入到类构建路径 --><addClasspath>true</addClasspath><!-- 外部依赖jar包的最终位置 --><classpathPrefix>lib/</classpathPrefix><!-- 项目启动类 --><mainClass>com.leenleda.pager.PagerApplication</mainClass></manifest></archive><!--资源文件不打进jar包中,做到配置跟项目分离的效果--><excludes><!-- 业务jar中过滤application.properties/yml文件,在jar包外控制 --><!-- <exclude>*.properties</exclude>--><!-- <exclude>*.xml</exclude>--><!-- <exclude>*.yml</exclude>--></excludes></configuration></plugin></plugins></build>
这样jar包就只有一百多kb,引用的三方包就在lib目录下。