关于maven-assembly-plugin插件打包,有部分无法打包的情况解决方法


今天在使用maven-assembly-plugin 对生产者进行打包,然后在linux中发布时。将包打包之后,发现mybtis的xml无法识别,然后查看原因说是没有这个包,我当时就纳闷了,都是基操(基本操作)怎么会出错。然后自己又看了几遍配置文件。

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

由于assembly有自己的默认存储包,因此不指定路径,会默认放在mybatis,即使没有也会帮你创建(我看了很多人都没有写指定路径)

 

按照常规操作在打包之后,检查classes文件下面就应该有mybatis的目录,但是我发现却没有。我以为是打包的方式问题,又尝试这对整体打包,结果依然是这样的。

<resources>
            <!--用于资源拷贝-->
            <resource>
                <directory>src/main/resources/spring</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <!-- dubbo 默认去META-INF/spring目录中加载spring配置我呢见 -->
                <targetPath>META-INF/spring/</targetPath>
            </resource>

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

            <resource>
                <directory>src/main/resources/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <!--<targetPath></targetPath>-->
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <!--<targetPath></targetPath>-->
            </resource>
        </resources>

 

在这里,我发现在没有指定路径的情况下,resources下面的文件和resources目录下的配置文件都可以打出相应的包。那我就认为我写的应该是没错的。可以没错缺解决不了问题。然后我就目光放在了Spring打包的指路路径的标签,在想是否我mybatis也需要同样的指定路径。于是自己就在下面写了指定路径。

<resource>
                <directory>src/main/resources/mybatis</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <targetPath>mybatis/</targetPath>
            </resource>

 

这样写完之后,发现打完包可以显示mybatis,放在linux里面运行也没有问题。可是我现在也没弄懂,为什么别人都不需要指定,而我就这么特殊。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM