關於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