在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. sublime text执行PHP代码

    新建编译系统 { "cmd": ["php", "$file"], "file_regex": "php$&q ...

  2. 算法笔记_233:二阶魔方旋转(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下:x轴正向:绿x轴 ...

  3. Python学习摘录(下)

    常用内建模块 1:collections模块:集合模块,提供了许多有用的集合类. namedtuple namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的 ...

  4. 让服务器可以下载apk和ipa文件

    选中指定网站→在右侧找到 MIME类型 → 双击进入已有类型页 → 点击最右侧添加 apk    application/vnd.android.package-archive MRP文件(国内普遍的 ...

  5. css 如何使图片与文字在div中居中展示?

      1.情景展示 如何将图片与文字在div中一起居中展示? HTML片段 <div style="background: #fff;padding-top: 5px;border:1p ...

  6. 转 php 5.3.6中php-fpm 配置

    php 5.3.6 中 php-fpm 配置 成 服务启动 从php5.3.3开始 源码中开始包含 php-fpm,不用专门再打补丁了,只需要解开源码直接configure, 关于php-fpm的编译 ...

  7. 1253 Dungeon Master

    题目链接: http://noi.openjudge.cn/ch0205/1253/ http://poj.org/problem?id=2251 总时间限制: 1000ms  内存限制: 65536 ...

  8. springboot+mybatis+maven角色权限框架

    发布时间:2018-10-24   技术:springboot,mybatis,maven,shiro   概述 Springboot作为基础框架,使用mybatis作为持久层框架 使用官方推荐的th ...

  9. Gerrit最简工作流

    Gerrit最简工作流: git clone  ...  //注意clone with commit-msg hook,否则push可能失败(ERROR: missing Change-Id in c ...

  10. 监听textarea文本框文本输入情况

    // When the value of the text area changes... $("textarea").on("input", function ...