maven打包时如何把配置文件(xml等)也放到classes目录里

首先,来看下MAVENx项目标准的目录结构:

maven打包时如何把配置文件(xml等)也放到classes目录里_第1张图片

一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。

 

有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。(maven认为src/main/java只是java的源代码路径)。网络上有很多方法,我大概试了下,几种方法都可以,可以任选一种即可。

 

方法1,其中**/*这样的写法,是为了保证各级子目录下的资源文件被打包。

xml代码

复制代码
<build>
    <finalName>testfinalName>
    
        
        
            src/main/java
            
                **/*.properties
                **/*.xml
                **/*.tld
            
            false
        
    
复制代码

方法2,利用maven-resources-plugin插件,用此方法需要将所有配置文件全部放在resources目录下

复制代码
<build>
    ...
    plugins>
        ...
        
        <plugin>
            <artifactId>maven-resources-pluginartifactId>
            <version>2.5version>
            <executions>
                <execution>
                    <id>copy-xmlsid>
                    <phase>process-sourcesphase>
                    <goals>
                        <goal>copy-resourcesgoal>
                    goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classesoutputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/src/main/javadirectory>
                                <includes>
                                    <include>**/*.xmlinclude>
                                includes>
                            resource>
                        resources>
                    configuration>
                execution>
            executions>
        plugin>      
    plugins>     
build>

或者这样简写
   
            
                maven-resources-plugin
                3.0.2
            
        

 补充:IDEA中,用macen-webapp模板创建的maven工程,pom文件里面自动添加了这个插件

你可能感兴趣的:(maven打包时如何把配置文件(xml等)也放到classes目录里)