maven在linux下打包会漏掉非java文件

    如题所示,这个问题是我在linux下对maven项目进行打包的时候遇到的问题,在项目src/main/java目录中除了java文件之外,有时候会加入一些别的配置比如properties类型的文件,或者meta文件,总之就是与项目开发有关的文件。

    当我们在开发的时候,一般是在windows上进行打包或者在ide中直接运行,不会出现漏掉非java文件的情况,如果将项目源代码放到linux系统上,利用maven打包,竟然漏掉了非java文件,也是很奇怪的一件事情,当然,他不会导致项目打包失败,只是在运行的时候,会导致一些功能失效或者直接报错。

    其实解决这个问题也很简单,以漏掉.meta文件为例,我们需要在pom.xml配置文件中build节点的resources下增加一个resource,指定directory为src/main/java目录,然后配置include包含**/*.meta即可,如下所示:

    maven在linux下打包会漏掉非java文件

    其中的include可以配置多个,根据需要指定即可。 

    这个问题以前从来没有遇到过,或者没有注意到,直到最近在gitlab上通过源代码maven构建jar,然后生成镜像,竟然出现这个问题,让我很惊讶,最后把打出的jar文件拿出来一看,发现确实少了非java文件,而在windows上进行打包却不会出现这个问题。这个我也不是很明白。