Maven项src/main/java目录下配置文件无法被导出或者生效的问题和处理方案

问题展示

原因剖析

处理方案

第一种:调整配置文件的位置(建议)

第二种:在pom.xml文件中配置

问题展示

今天试着大了maven+mybatis,以下是我的目录结构,我的xml文件是放在java文件夹下的

mappers 标签配置了需要加载的 Dept的sql映射配置文件DeptMapper.xml。

其单元测试访问的时候,报了一个错

找不到DeptMapper.xml文件

再看编译后的文件,竟然没有我们的DeptMapper.xml文件

我试着把DeptMapper.xml文件放到resouces目录下

运行单元测试,竟然成功了

再看编译后的文件,对应目录下也有我们的DeptMapper.xml文件

原因剖析

为什么DeptMapper.xml文件放在java文件夹下就没被编译导出来呢,而放在resouces目录下就可以,这肯定是和maven有关,原来,默认maven在src/main/java中只编译java文件,其他的文件会被忽略

处理方案

第一种:调整配置文件的位置(建议)

既然知道了默认maven在src/main/java中只编译java文件,其他的文件会被忽略,那么我们就把配置文件放在resouces文件夹下就好了。

第二种:在pom.xml文件中配置

在pom.xml文件的<build>标签中添加以下内容,把java目录下的文件也打包编译

 <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

以上配置即可满足,当然为了更完善一点,那就用以下配置,把默认的也给配置上

 <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

到此这篇关于Maven项src/main/java目录下配置文件无法被导出或者生效的问题和处理方案的文章就介绍到这了,更多相关Maven 配置文件无法被导出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Maven配置文件pom.xml详解

    什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml.在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件.一个Project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他.它包含了所有与这个项目相关的东西.事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件. 概览 下面

  • Maven根据不同环境打包不同配置文件的方法

    开发项目时会遇到这个问题:开发环境,测试环境,生产环境的配置文件不同,打包时经常要手动更改配置文件,更改的少还可以接受,但是如果需要更多个配置文件,手动的方法就显得非常笨重了. 下面介绍一种方法,利用Maven插件来打包不同环境的配置文件.我们用到的是maven-war-plugin这个插件. 首先贴出整个pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.

  • 使用maven profile指定配置文件打包适用多环境的方法

    开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件. 如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目. 1.新建maven项目,   在pom.xml中添加 profile节点信息如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <envi

  • maven profile动态选择配置文件详解

    一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力. maven提供了一种方便的解决这种问题的方案,就是profile功能. 二.profile简介 profile可以让我们定义一系列的配置信息,然后指定其激活条件.这样我们就可以定义多个pro

  • Maven 的配置文件路径读取方法

    在使用 XML 的配置方式来构建 Mybatis 的核心类 SqlSessionFactory 时,遇到了配置文件路径总是写不对的问题.事后看其实就是没有好好看文档,一直在盲人摸象. 下面时读取 XML 配置文件的代码: var inputSteam = Resources.getResourceAsStream("config/mybatis.xml"); var sqlSessionFactory = new SqlSessionFactoryBuilder().build(inp

  • Maven 配置文件 生命周期 常用命令详解

    当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于初学者,Ant是最清晰的,只要读懂Xml配置文件你就能够理解它干了什么,但是ant文件很容易变的更加复杂.Maven有自己的工程目录规则和内置的构建生成周期,从而使构建文件更加简单.gradle有很多开箱即用的插件,语法更加短小精悍,易于理解. 在讲解maven之前这里我们先简单比较下Maven和Ant.下面是一个简单的Ant例子.这个例子可以看出我们需要明确的告诉Ant.我们想让他做什么.

  • Maven项src/main/java目录下配置文件无法被导出或者生效的问题和处理方案

    问题展示 原因剖析 处理方案 第一种:调整配置文件的位置(建议) 第二种:在pom.xml文件中配置 问题展示 今天试着大了maven+mybatis,以下是我的目录结构,我的xml文件是放在java文件夹下的 mappers 标签配置了需要加载的 Dept的sql映射配置文件DeptMapper.xml. 其单元测试访问的时候,报了一个错 找不到DeptMapper.xml文件 再看编译后的文件,竟然没有我们的DeptMapper.xml文件 我试着把DeptMapper.xml文件放到res

  • maven工程如何读取resource目录下配置文件

    目录 maven工程读取resource目录下配置文件 maven配置resource,多个source目录 maven工程读取resource目录下配置文件 在maven工程中,我们会将配置文件放到src/main/resources下面,例如 我们需要确认resource 下的文件编译之后存放的位置. 它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径. public static

  • Maven项目中读取src/main/resources目录下的配置文件的方法

    在Maven项目的开发中,当需要读取src/下的配置文件时,该怎么做? 我们假设Resources下有一个文件名为kafka.properties的配置文件(为什么用kafka.properties,因为这是在做kafka项目的时候碰到的问题,在网上查到了不少信息,索性当个搬运工,再根据自己的理解整理一下) 1.在java类中读取 若配置文件不在src/main/resources目录下,可以直接使用 Properties prop = new properties(); prop.load(n

  • 解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题

    参考链接 IDEA 2020.2.3版本 IntelliJ IDEA 2020.2.3永久激活码(亲测有效) IDEA 2019.3版本 IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年) IntelliJ IDEA 2018.3.3版本 最新idea2020注册码永久激活(激活到2100年) 问题描述 在IDEA中创建maven项目时,发现没有src/main/java目录和webapp目录 问题解决 红色框里一开始是默认的maven地址,如果本身默认地址里并没

  • 解决@springboottest注解无法加载src/main/resources目录下文件

    目录 结论 环境及问题描述 问题分析 1.首先com.xx.xxx.service.SsoService该类存在 2.再看下pom文件的配置 3.这个类是在src/main/resources目录下的资源文件里配置 Springboot微服务框架是目前越来越流行的框架,省去了很多繁琐的xml配置.最近新启了个项目,采用SpringBoot框架从头搭建,中间也遇到过各种坑,现在先描述一下 Junit4单元测试之坑吧. 结论 @SpringBootTest注解,只会加载test路径下的资源文件(即x

  • SpringBoot如何获取src/main/resource路径下的文件

    目录 SpringBoot获取src/main/resource路径下的文件 SpringBoot打成jar包后,读取resources目录下的文件 一般方法 正确方法 SpringBoot获取src/main/resource路径下的文件 下面的ResourceUtils使用spring-core的工具包,在org.springframework.util包下 File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFI

  • 项目打包成jar后包无法读取src/main/resources下文件的解决

    目录 一.项目场景 二.问题描述 发现问题 分析问题 为什么使用 ClassPathResource 后, 可以找到打包后的文件路径? 三.解决方案 方案一 方案二 意外出现 总结 一.项目场景 在项目中读取文件时, 使用new File() 出现的一个坑以及解决流程这种问题不仅在本地文件读取时会遇到, 而且在下载项目下 (例如: src/main/resources目录下) 的文本时, 也会遇到, 二.问题描述 发现问题 原来代码该代码功能是利用 common.io 包下的FileUtils来

  • IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法

    出处:https://www.cnblogs.com/SunSpring eclipse下面创建的Maven项目,使用mybatis.eclipse里面能正常启动,在idea中一直卡在maybatis 加载位置. 1.首先是不报错也没反应.这个时候需要我们重写SqlSessionFactoryBean 让错误显示出来. public class BeanFactory extends SqlSessionFactoryBean { @Override protected SqlSessionFa

  • 解读classpath读取resources目录下的文件

    目录 classpath读取resources目录下文件 1.class.getResource() 2.getClassLoader().getResource() 4.批量读取 5.如果配置文件中要引用这个文件的路径呢? 总结 classpath读取resources目录下文件 最近在springboot+maven的项目中去读取资源文件的时候,报了找不到文件的错误. 由此展开了对maven项目编译前和编译后的目录结构的了解,以及对java的classpath的理解. 首先: 由Maven构

  • idea maven 项目src下的配置文件没有同步至target的解决操作

    如果发现maven项目里面src/main/resources下的配置文件或src/main/java下的xml配置文件未能同步至target,首先,要确保src下的文件夹职能划分好,如下图,请注意java, resources, webapp这些目录的图标,如果不是这样,请选中后右键->make directory as来指明文件夹用途. 在下面这里分别指出web.xml的位置和web root的位置. 这个编译后输出的路径用默认的, 不要改变 . 重点是pom.xml,如果你的pom里面没有

随机推荐