shade~實現打包多(duo)個關聯包并過(guo)濾配置文(wen)件
使用maven-shade-plugin插件(jian)(jian)(jian)可以幫(bang)我們(men)(men)把多個(ge)依(yi)(yi)賴(lai)包(bao)(bao)(bao)打(da)包(bao)(bao)(bao)一(yi)個(ge)jar包(bao)(bao)(bao),并(bing)且在打(da)包(bao)(bao)(bao)時可以幫(bang)我們(men)(men)過濾(lv)一(yi)些(xie)文件(jian)(jian)(jian),比如每(mei)個(ge)依(yi)(yi)賴(lai)包(bao)(bao)(bao)里都(dou)有application.properties文件(jian)(jian)(jian),在打(da)包(bao)(bao)(bao)時這個(ge)文件(jian)(jian)(jian)會進行合并(bing),這對于使用者來說是(shi)不希(xi)望(wang)的,它們(men)(men)更(geng)希(xi)望(wang)自己去寫配(pei)置信息,所以在打(da)包(bao)(bao)(bao)時,應(ying)該把配(pei)置文件(jian)(jian)(jian)過濾(lv)掉。
下面代碼(ma)幫我(wo)們實(shi)現(xian)了關(guan)聯(lian)包(bao)合并及(ji)過(guo)濾(lv)配置文(wen)件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<!-- 過濾器排除配置文件-->
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</filter>
</filters>
<artifactSet>
<!-- 捆綁包含-->
<includes>
<include>com.lind:lind-common</include>
<include>com.lind:lind-limit-start</include>
<include>com.lind:lind-lock-start</include>
</includes>
<!-- 排除文件-->
<!-- <excludes>-->
<!-- </excludes>-->
</artifactSet>
<createSourcesJar>true</createSourcesJar>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
打完包之后,我們看到有源碼jar和目標jar

我們任意打開一個jar,通過解壓軟件可以看到,里面的配置文件被過濾了
