maven之build resources resource 详细介绍
Maven_Build_Resources
功能:主要用于打包資源文件,默認(rèn)情況下maven只打包src/main/resource下的資源,通過(guò):
1、設(shè)置build_resources
2、使用build-helper-maven-plugin插件
3、使用maven-resources-plugin插件
都可以自定義要打包的資源
一般情況下,我們用到的資源文件(各種xml,properties,xsd文件)都放在src/main/resources下面,利用maven打包時(shí),maven能把這些資源文件打包到相應(yīng)的jar或者war里。
有時(shí)候,比如mybatis的mapper.xml文件,我們習(xí)慣把它和Mapper.java放在一起,都在src/main/java下面,這樣利用maven打包時(shí),就需要修改pom.xml文件,來(lái)吧mapper.xml文件一起打包進(jìn)jar或者war里了,否則,這些文件不會(huì)被打包的。(maven認(rèn)為src/main/java只是java的源代碼路徑)。
方法1,其中*/這樣的寫(xiě)法,是為了保證各級(jí)子目錄下的資源文件被打包。
<build> <finalName>test</finalName> <!-- 這樣也可以把所有的xml文件,打包到相應(yīng)位置。 <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.tld</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.tld</include> </includes> <filtering>false</filtering> </resource> </resources> </build>方法2,利用build-helper-maven-plugin插件
<build> ... </plugins> ... <!-- 此plugin可以用 利用此plugin,把源代碼中的xml文件, 打包到相應(yīng)位置,這里主要是為了打包Mybatis的mapper.xml文件 --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>add-resource</id> <phase>generate-resources</phase> <goals> <goal>add-resource</goal> </goals> <configuration> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> ... </plugins> ... </build>方法3,利用maven-resources-plugins插件
<build> ... </plugins> ... <!-- 此plugin可以用 利用此plugin,把源代碼中的xml文件,打包到相應(yīng)位置, 這里主要是為了打包Mybatis的mapper.xml文件 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>copy-xmls</id> <phase>process-sources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/classes</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> ... </plugins> ... </build>以下是對(duì)maven 插件的說(shuō)明:
resources:描述工程中資源的位置
<resource> <targetPath>META-INF/plexus</targetPath> <filtering>false</filtering> <directory>${basedir}/src/main/plexus</directory> <includes> <include>configuration.xml</include> </includes> <excludes> <exclude>**/*.properties</exclude> </excludes> </resource>targetPath:指定build資源到哪個(gè)目錄,默認(rèn)是base directory
filtering:指定是否將filter文件(即build下的filters里定義的*.property文件)的變量值在這個(gè)resource文件有效,例如上面就指定那些變量值在configuration文件無(wú)效。
directory:指定屬性文件的目錄,build的過(guò)程需要找到它,并且將其放到targetPath下,默認(rèn)的directory是${basedir}/src/main/resources
includes:指定包含文件的patterns,符合樣式并且在directory目錄下的文件將會(huì)包含進(jìn)project的資源文件。
excludes:指定不包含在內(nèi)的patterns,如果inclues與excludes有沖突,那么excludes勝利,那些符合沖突的樣式的文件是不會(huì)包含進(jìn)來(lái)的。
testResources:這個(gè)模塊包含測(cè)試資源元素,其內(nèi)容定義與resources類(lèi)似,不同的一點(diǎn)是默認(rèn)的測(cè)試資源路徑是${basedir}/src/test/resources,測(cè)試資源是不部署的。
默認(rèn)情況下,如果沒(méi)有指定resources,目前認(rèn)為自動(dòng)會(huì)將classpath下的src/main/java下的.class文件和src/main/resources下的.xml文件放到target里頭的classes文件夾下的package下的文件夾里。如果設(shè)定了resources,那么默認(rèn)的就會(huì)失效,就會(huì)以指定的includes和excludes為準(zhǔn)。例如,為了使打包的jar包里頭包含.java源文件。
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的maven之build resources resource 详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高通芯片是代工还是自己生产 只做设计不生
- 下一篇: 回收宝获阿里巴巴C1轮融资 旗下多个平台