在maven工程中,我们会将配置文件放到,src/main/resources   下面,例如

我们需要确认resource 下的文件 编译之后存放的位置

它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径

  1. public static void main(String[] args) throws ParserConfigurationException, Exception{
  2. ClassLoader classLoader = TestDom.class.getClassLoader();
  3. URL resource = classLoader.getResource("test.xml");
  4. String path = resource.getPath();
  5. System.out.println(path);
  6. InputStream resourceAsStream = classLoader.getResourceAsStream("test.xml");

这样我们就可以直接拿到路径,调用 getResourceAsStream 方法 可以直接拿到目标文件的输入流

Maven 为我们提供了一致的项目目录配置(源文件夹、资源文件夹等),在自动构建项目时, Maven 会按照这个配置来执行操作(编译源文件、拷贝资源文件)。

当 Maven 规约的默认配置不能够满足我们的需求时,我们就要动手修改项目的 Maven 配置,让我们的项目能够与 Maven 很好地协同工作。这里讨论的需求有:

  1. 配置多个源文件夹来管理我们项目的模块
  2. 配置多个资源文件夹来管理我们项目模块的资源文件
  3. 有些遗留代码的一些资源文件是放在源文件夹下的,为了不改变原有项目结构,我希望 Maven 能够从源文件夹下读取资源文件
  4. 我想将项目模块的源文件和资源文件放置在同一个文件夹下,以方便开发与维护
 
      查看maven默认目录结构配置,在项目根路径下查看pom.xml,双击打开点击Effective POM选项,在页面中可以查找到maven默认的目录结构
  1. <sourceDirectory>D:\workspace\meweb\src\main\java</sourceDirectory>  源代码文件夹
  2. <scriptSourceDirectory>D:\workspace\meweb\src\main\scripts</scriptSourceDirectory>  脚本
  3. <testSourceDirectory>D:\workspace\meweb\src\test\java</testSourceDirectory> 测试代码
  4. <outputDirectory>D:\workspace\meweb\target\classes</outputDirectory> 编译后输出的目录
  5. <testOutputDirectory>D:\workspace\meweb\target\test-classes</testOutputDirectory> 测试代码编译输出目录
  6. <resources> 资源文件夹,可配置多个
  7. <resource>
  8. <directory>D:\workspace\meweb\src\main\resources</directory> 资源文件目录
  9. <includes> 包含的文件
  10. <include>*.*</include>
  11. </includes>
  12. </resource>
  13. </resources>
  14. <testResources>
  15. <testResource>
  16. <directory>D:\workspace\meweb\src\test\resources</directory> 测试资源目录
  17. </testResource>
  18. </testResources>
  19. <directory>D:\workspace\meweb\target</directory>

找到maven目录结构配置,就知道怎么修改配置了,可以在pom.xml 中project -- build标签中配置maven目录结构,使其符合自身项目需要

   修改,源代码路径为src/main,资源路径为src/resources
 
  1. <sourceDirectory>src/main</sourceDirectory>
  2. <resources>
  3. <resource>
  4. <filtering>true</filtering>
  5. <directory>src/resources</directory>
  6. <includes>
  7. <include>*.*</include>
  8. </includes>
  9. </resource>
  10. </resources>

也可以配置多个资源目录

  1. <sourceDirectory>src/main</sourceDirectory>
  2. <resources>
  3. <resource>
  4. <filtering>true</filtering>
  5. <directory>src/resources</directory>
  6. <includes>
  7. <include>*.*</include>
  8. </includes>
  9. </resource>
  10. <resource>
  11. <directory>test</directory>
  12. <includes>
  13. <include>*.*</include>
  14. </includes>
  15. </resource>
  16. </resources>

maven配置src/resources默认目录的更多相关文章

  1. maven工程src/main/java目录无法创建问题

    在项目上右键选择properties,然后点击Javabuild path,在Librarys下,编辑JRE System Library,选择 workspace default jre 即可

  2. 解决idea中maven项目无法读取src/main/java目录下面的配置文件问题

    解决idea中maven项目无法读取src/main/java目录下面的配置文件问题 当我们在maven项目中使用Mybatis的时候,需要给Mybatis配置核心xml文件(MyBatis-Conf ...

  3. MAVEN 工程打包resources目录外的更多资源文件

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

  4. 新建Maven项目建成后本应该有的src/main/java和src/test/java目录并没有出现:

    转自:http://www.cnblogs.com/dong-dong-dong/p/9565466.html 新建Maven项目建成后本应该有的src/main/java和src/test/java ...

  5. 【Maven】1.使用myecplise配置自己的Maven配置,不使用默认的maven

    [好文章]参考地址: http://www.cnblogs.com/luotaoyeah/p/3764533.html ---------------------------------------- ...

  6. 怎么配置Jupyter Notebook默认启动目录?

    前言 系统环境:win10 x64:跟环境也没啥关系,在LInux下也一样... 前段时间重换了系统后,发现Jupyter Notebook的默认启动目录不太对呀,所以,就翻到了以前的笔记,还是记在这 ...

  7. maven 配置: 修改默认的 .m2仓库 默认存储路径.

    maven 配置: 修改默认的 .m2仓库 默认存储路径. 一 .在系统maven里修改 1.在maven_HOME/conf/下找到配置文档 settings.xml 在文档中添加如下的配置说明 & ...

  8. 给idea设置默认使用的maven配置

    一,前言 大家都知道,java开发中最经常使用的开发工具是Maven,最近看新同事在使用idea,我也下载了一个,准备尝试一下. 而maven是非诚方便进行工程管理的,至少管理jar包,是非常方便的, ...

  9. net core静态文件 访问除默认目录文件配置

    在我们项目的实际应用中,不光是需要访问默认静态文件夹 wwwroot ,还有可能要要去访问除默认目录以外的文件夹,接下来我们进行配置 1.在根目录创建一个文件夹,继续创建它的子文件夹Images,在I ...

随机推荐

  1. vmware备份

    http://wenku.baidu.com/view/fc317dcc050876323112128d.html vmware vcb文档 http://www.docin.com/p-423555 ...

  2. LevelDB初体验测试

    最近工作需要找一个能使用磁盘存储数据,对写要求比较苛刻,需要每秒达100000TPS,读的时候需要能10000TPS左右,不能占用太多内存.单节点满足这个要求的常见有Redis.Memcached等, ...

  3. 忘记MySQL root密码重置MySQL root密码

    (1)停止mysql# /etc/init.d/mysql stop(2)以不检查权限的方式启动# mysqld --skip-grant-tables &(3)登录mysql修改root用户 ...

  4. python __setattr__和__getattr__

    通过为dict添加__setattr__和__getattr__, 可以属性的语法访问dict的元素 http://www.2cto.com/kf/201507/413971.html class S ...

  5. debian下配置网络 安装无线网卡驱动 Broadcom BCMXX系列

    解决方案来自于debian官网  https://wiki.debian.org/wl 1.加入源 deb http://http.debian.net/debian/ wheezy main c ...

  6. auto_ptr,unique_ptr,shared_ptr,weak_ptr

    http://mojijs.com/2016/08/218129/index.html http://www.cnblogs.com/lanxuezaipiao/p/4132096.html

  7. MySQL查看当前用户、存储引擎、日志

    #查看MySQL的当前用户 mysql> SELECT USER(); +----------------+ | USER() | +----------------+ | root@local ...

  8. jqPlot图表插件学习之折线图-散点图-series属性

    一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...

  9. 错误提示:通过 Web 服务器的身份验证的用户无权打开文件系统上的文件

    //win7中iis配置好了可是网页打不开,为什么.? //错误提示:通过 Web 服务器的身份验证的用户无权打开文件系统上的文件 //解决办法1.右键单击你的网站根目录文件夹,如wwwroot文件夹 ...

  10. java 怎么实现接收控制台输入?

    //接收键盘输入: //怎么实现接收控制台输入? import java.util.Scanner; //Test.java import java.util.Scanner; public clas ...