隨着微服務架構思想的普及,不少公司或者獨立開發人都傾向於將本身的項目模塊化;這樣極大的方便 了開發以及運維成本。當模塊化後,工程中所依賴的第三方包就須要單獨存放到一個公共的lib庫,避免依賴的重複。spring
以spring cloud工程爲例apache
每一個獨立的模塊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
也是能夠的。運維