maven编译后找到不到xml文件

/ Maven / 没有评论 / 396浏览

周五在使用公司新框架时,遇到了项目启动失败的问题,日志显示找不到项目的配置文件,也就是xml文件。但本人已经详细检查了项目的配置没有任何问题,但日志的确显示找到不了相应的配置文件。后来本人将包中的配置文件拷贝到了项目的resources目录下面,然后启动项目,日志显示没有问题了,也就是能够找到相应的配置文件了。既然将配置文件拷贝到resources能够正确启动项目,那么上述的问题的原因就可显而知了。也就是maven编译时并没有把相应的配置文件打到包里。事实上maven在打包时默认只会将.java的文件打包,而不会将其它类型的文件打包,如果要将其它类型的文件打包,需要添加相应的配置。具体的配置如下:

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

只要按照上面的方式配置maven在打包时就可以将上面指定类型的配置文件打到包里。如果我们想把包里的所有文件都打到包里,那么我们只要按照下面的方式配置即可。

<build>
<resources>
<resource>
<directory>src/main/java/</directory>
</resource>
</resources> </build>

虽然按照上述的配置可以解决将包中的配置文件打到包里,但是并不能解决上述的错误,因为按照上述配置后会导致另一个问题。我们知道如果将配置文件拷贝到resources目录下那么在编译后就会将配置文件直接放到classes目录下。但是按照我们上述配置,maven在打包时,默认就不会将resources目录下的配置文件放到classes目录下了,这时就会导致另一个问题,也就是项目还会报找不到其它的配置文件,我们只要按照上面方式配置resources目录就可以解决此问题了。也就是下面的配置。

<build>
<resources>
<resource>
<directory>src/main/resources/</directory>
</resource>
</resources> </build>

所以解决上述问题只要做以下配置就可以了。

<build>
<resources>
<resource>
<directory>src/main/java/</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources> </build>