今天在使用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里面运行也没有问题。可是我现在也没弄懂,为什么别人都不需要指定,而我就这么特殊。
|