Maven打包WAR包時(shí)如何排除META-INF/maven目錄?

maven項(xiàng)目打包war包時(shí)排除meta-inf/maven目錄

在使用maven構(gòu)建war包的過(guò)程中,常常會(huì)遇到meta-inf目錄下包含maven生成的元數(shù)據(jù)文件(例如pom.xml,pom.properties等),這些文件在部署到應(yīng)用服務(wù)器時(shí)可能會(huì)造成沖突或不必要的占用空間。本文將針對(duì)如何排除這些文件提供解決方案。

問(wèn)題描述:

提問(wèn)者在使用maven打包war包時(shí),希望排除meta-inf/maven目錄下的所有文件。盡管?chē)L試過(guò)多種方法,例如添加各種插件配置,但始終未能成功去除該目錄。其pom.xml文件的部分配置如下:

    <build>         <finalname>bam-console</finalname>         <plugins>             <!-- ...其他插件配置... -->             <plugin>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-maven-plugin</artifactid>                 <configuration>                     <fork>true</fork>                     <mainclass>com.bamboocloud.am.application</mainclass>                 </configuration>             </plugin>         </plugins>         <resources>             <resource>                 <directory>src/main/java</directory>                 <includes>                     <include>**/*.xml</include>                 </includes>                 <filtering>false</filtering>             </resource>             <resource>                 <directory>src/main/resources</directory>                 <includes>                     <include>**/*.*</include>                 </includes>                 <filtering>false</filtering>             </resource>             <resource>                 <directory>view</directory>                 <includes>                     <include>**/*.*</include>                 </includes>                 <filtering>false</filtering>                 <targetpath>${basedir}/target/bam-console/view</targetpath>             </resource>               <resource>                 <directory>src/main/webapp/meta-inf</directory>                 <filtering>true</filtering>                 <excludes>                     <exclude>maven/**</exclude>                 </excludes>             </resource>         </resources>     </build>

解決方案:

要解決這個(gè)問(wèn)題,需要在pom.xml中添加maven-war-plugin插件并進(jìn)行相應(yīng)的配置:

           <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-war-plugin</artifactId>                 <version>2.6</version>                 <configuration>                     <failOnMissingWebXml>false</failOnMissingWebXml>                     <archive>                         <addMavenDescriptor>false</addMavenDescriptor>                     </archive>                 </configuration>             </plugin>

添加此插件并設(shè)置為false,即可阻止maven在war包中添加maven描述符文件,從而達(dá)到排除meta-inf/maven目錄的目的。 需要注意的是,version可以根據(jù)實(shí)際情況選擇合適的版本。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員