maven打包资源文件需要注意的问题有哪些

发布时间:2021-10-20 17:34:39 作者:柒染
来源:亿速云 阅读:102

今天就跟大家聊聊有关maven打包资源文件需要注意的问题有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

初衷

我写这篇博客的目的是想让大家了解一些 maven 项目的结构以及打包后是什么样子的,方便大家在实际项目中去排查问题。比如:我明明在 src/main/java 下把 mybatis 的 xml 写上了,为什么项目报错读不到呢?我配置了多种环境的配置文件,真正运行时只会选择一个,所以不想把 src/main/resources 下的所以文件都打包到 target/classes 下,那该怎么办?

maven 的标准的目录结构

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。 标准的目录结构如下: maven打包资源文件需要注意的问题有哪些

maven打包资源文件需要注意的问题有哪些

maven 资源的相关配置

src/main/java和src/test/java

这两个目录中的所有 .java 文件会分别在 comile 和 test-comiple 阶段被编译,编译结果分别放到了target/classes 和 targe/test-classes 目录中,但是这两个目录中的其他文件(比如:.xml 等)都会被忽略掉。

src/main/resouces和src/test/resources

这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。

target/classes

maven 打包插件默认会把这个目录中的所有内容打入到 jar 包或者 war 包中。

resource

maven resource 需要注意的问题。默认情况下 maven 会根据标准路径去把对应的文件全部复制到 target 下。如果需要选择性打包某些文件的话,就需要用到 resource。

下面以我创建的 maven 项目 mavenDemo 为例。

在 mavenDemo 项目的 pom.xml 中加入下面配置,目的是:只将 src/main/resources 下的后缀为 properties、xml 的文件打包到 classes 文件下。效果如图 1。

使用 maven 的 clean package 命令就可以打包我们的项目到 target 文件下。注意一定要先执行 maven 的 clean 命令,后执行 package 命令。 直接使用 package 命令可能会存在缓存,使得我们看不到最新的修改。

<build>
    .......
      <resources>
        <resource>
            <directory>src/main/resources</directory>
            <!-- 设置需要打包的文件,可以使用正则表达式 -->
            <includes>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
            </includes>
            <!-- 开启资源打包过滤 -->
            <filtering>true</filtering>
        </resource>
      </resources>
    ......
</build>

我们可以看到项目打包后,src/main/resources 下的 .sql 文件就被过滤掉了,只留下了 .yml、.xml 的配置文件。

 maven打包资源文件需要注意的问题有哪些

看完上述内容,你们对maven打包资源文件需要注意的问题有哪些有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. Java学习需要注意的问题有哪些
  2. PostgreSQL有哪些需要注意的问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

maven

上一篇:Lambda表达式是什么

下一篇:如何集成与使用Spring Boot + Mybatis-Plus

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》