zoukankan      html  css  js  c++  java
  • Maven:打包后缺少资源文件

    默认情况

    • maven认为src/main/java只是java的源代码路径,只会把.java为后缀的文件进行打包
    • resources目录下的文件始终都会打包进jar包或war包

    问题一:XML文件放在【src/main/java】目录,不会被打包

    原因:
    当使用Mybatis时,把xml文件放在与mapper文件同一目录(如:src/main/java/top/testops/mapper),而maven默认不会打包src/main/java下的非.java后缀的文件。

    解决方案:
    pom.xml文件中,添加代码:

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

    问题二:【src/main/resources】目录下的文件不会被打包

    表现:
    pom.xml添加了上述配置后,再进行打包,会发现:

    • src/main/java的xml文件会被一起打包
    • src/main/resources目录下的文件不会被打包

    原因:
    pom.xml添加了上述配置后,会覆盖默认的逻辑,令Maven不会打包resources目录下的文件

    解决方案:
    pom.xml文件中,修改<resources>为:

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.jpg</include>
                    <include>**/*.ttf</include>
                    <include>**/*.xml</include>
                </includes>
                <excludes>
                    <exclude>**/*.yml</exclude>
                </excludes>
            </resource>
        </resources>
    </build>
    

    解释:

    • <directory>:该规则适用的目录。
    • <include>:能匹配上的,会进行打包。
    • <exclude>:能匹配上的,不会进行打包。与<include>冲突时,以<exclude>为准,即不会进行打包。
    • **/*.yml:该写法是为了保证各级子目录下的资源文件被打包。如过只写*.yml,则表示只有src/main/resources一级目录下,以yml为后缀的文件会被打包
  • 相关阅读:
    HDU2066一个人的旅行(dijkstra)
    HDU2544最短路(dijkstra)
    iOS 入门 界面UI 界面跳转
    Lua 函数作为参数传递时的注意事项
    成为Lua高手之metatable
    Android 之 声音捕捉
    Lua 多变长参数传递之三点(...)
    iOS之声音捕捉
    iOS ZXing 二维码模块的加入
    Windows 7 系统的系统界面语言切换成风骚的英文
  • 原文地址:https://www.cnblogs.com/testopsfeng/p/15384704.html
Copyright © 2011-2022 走看看