随着微服务架构思维的遍及,很多公司或者独立开发人都偏向于将本人的我的项目模块化;这样极大的不便 了开发以及运维老本。当模块化后,工程中所依赖的第三方包就须要独自寄存到一个公共的lib库,防止依赖的反复。
以spring cloud工程为例
每个独立的模块pom文件中,退出maven插件maven-jar-plugin
和maven-dependency-plugin
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.2</version> <configuration> <archive> <manifest> <mainClass>com.jason.HelloApplication</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.2</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins></build>
这样打进去的包就会将以后模块所依赖的第三方包放在lib文件夹下,不会将其打入到工程模块中,无效的缩小了模块的体积。
当然,应用spring-boot-maven-plugin
替换掉maven-jar-plugin
也是能够的。