功能:主要用于打包资源文件,默认情况下maven只打包src/main/resource下的资源,通过

1、设置build_resources
2、使用build-helper-maven-plugin插件
3、使用maven-resources-plugin插件
都可以自定要打包的资源



首先,来看下MAVEN项目标准的目录结构:

一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。

有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。(maven认为src/main/java只是java的源代码路径)。网络上有很多方法,我大概试了下,几种方法都可以,可以任选一种即可。

方法1,其中**/*这样的写法,是为了保证各级子目录下的资源文件被打包。

  1. <build>
  2. <finalName>test</finalName>
  3. <!--
  4. 这样也可以把所有的xml文件,打包到相应位置。
  5. <resources>
  6. <resource>
  7. <directory>src/main/resources</directory>
  8. <includes>
  9. <include>**/*.properties</include>
  10. <include>**/*.xml</include>
  11. <include>**/*.tld</include>
  12. </includes>
  13. <filtering>false</filtering>
  14. </resource>
  15. <resource>
  16. <directory>src/main/java</directory>
  17. <includes>
  18. <include>**/*.properties</include>
  19. <include>**/*.xml</include>
  20. <include>**/*.tld</include>
  21. </includes>
  22. <filtering>false</filtering>
  23. </resource>
  24. </resources>
  25. </build>

方法2,利用build-helper-maven-plugin插件

  1. <build>
  2. ...
  3. </plugins>
  4. ...
  5. <!--
  6. 此plugin可以用
  7. 利用此plugin,把源代码中的xml文件,
  8. 打包到相应位置,这里主要是为了打包Mybatis的mapper.xml文件
  9. -->
  10. <plugin>
  11. <groupId>org.codehaus.mojo</groupId>
  12. <artifactId>build-helper-maven-plugin</artifactId>
  13. <version>1.8</version>
  14. <executions>
  15. <execution>
  16. <id>add-resource</id>
  17. <phase>generate-resources</phase>
  18. <goals>
  19. <goal>add-resource</goal>
  20. </goals>
  21. <configuration>
  22. <resources>
  23. <resource>
  24. <directory>src/main/java</directory>
  25. <includes>
  26. <include>**/*.xml</include>
  27. </includes>
  28. </resource>
  29. </resources>
  30. </configuration>
  31. </execution>
  32. </executions>
  33. </plugin>
  34. ...
  35. </plugins>
  36. ...
  37. </build>

方法3,利用maven-resources-plugin插件

  1. <build>
  2. ...
  3. </plugins>
  4. ...
  5. <!--
  6. 此plugin可以用
  7. 利用此plugin,把源代码中的xml文件,打包到相应位置,
  8. 这里主要是为了打包Mybatis的mapper.xml文件
  9. -->
  10. <plugin>
  11. <artifactId>maven-resources-plugin</artifactId>
  12. <version>2.5</version>
  13. <executions>
  14. <execution>
  15. <id>copy-xmls</id>
  16. <phase>process-sources</phase>
  17. <goals>
  18. <goal>copy-resources</goal>
  19. </goals>
  20. <configuration>
  21. <outputDirectory>${basedir}/target/classes</outputDirectory>
  22. <resources>
  23. <resource>
  24. <directory>${basedir}/src/main/java</directory>
  25. <includes>
  26. <include>**/*.xml</include>
  27. </includes>
  28. </resource>
  29. </resources>
  30. </configuration>
  31. </execution>
  32. </executions>
  33. </plugin>
  34. ...
  35. </plugins>
  36. ...
  37. </build>

Maven_Build_Resources的更多相关文章

随机推荐

  1. 高级c++头文件bits/stdc++.h

    用这种方法声明头文件只需两行代码 #include<bits/stdc++.h> using namespace std; 这个头文件包含以下等等C++中包含的所有头文件: #includ ...

  2. 第15章 设备无关位图_15.3 DIB和DDB的结合

    第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说 ...

  3. sql索引的填充因子多少最好,填充因子的作用?

    当创建一个新索引,或重建一个存在的索引时,你可以指定一个填充因子,它是在索引创建时索引里的数据页被填充的数量.填充因子设置为100意味着每个索引页100%填满,50%意味着每个索引页50%填满. 如果 ...

  4. 使用C#向后台ACCESS数据库添加数据

    Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft O ...

  5. [No00004E]千万不要“拼命”工作——写在滴滴总裁柳青患癌症之后

    滴滴快的总裁柳青发内部信,透露自己检查出乳腺癌,她今年才37岁. 9月30日,就是国庆前一天,柳青发了内部信,透露了这个消息,她也说已经做完肿瘤摘除手术,"目前感觉还挺好的".她也 ...

  6. [No000040]取得一个文本文件的编码方式

    using System; using System.IO; using System.Text; /// <summary> /// 用于取得一个文本文件的编码方式(Encoding). ...

  7. java 22 - 14 JDK1.5以后的Lock锁

    在之前解决线程安全的过程中,虽然我们可以理解同步代码块和同步方法的锁对象问题, 但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对 ...

  8. js中控制小数点的显示位数的技术整理

    js中自带方法控制小数点的显示位数(四舍五入) alert((12.9299).toFixed(2)); //12.93 alert((12.9243).toFixed(2)); //12.92 小数 ...

  9. Zygote进程【1】——Zygote的诞生

    在Android中存在着C和Java两个完全不同的世界,前者直接建立在Linux的基础上,后者直接建立在JVM的基础上.zygote的中文名字为"受精卵",这个名字很好的诠释了zy ...

  10. PHP核心技术与最佳实践--笔记

    <?php error_reporting(E_ALL); /* php 5.3引入 延迟静态绑定 */ /* php5.4引入trait,用来实现多层继承 trait Hello{} trai ...