Maven资源导出问题

资源文件的配置

有时候有些配置文件通常与.java文件一起放在src/main/java目录(如mybatis或hibernate的表映射文件)。希望把该目录中的资源也复制到classes目录中。这些情况下就需要在Pom.xml文件中修改配置了。否则导出时,只会导出java目录中的class文件,而不包括其中的配置文件和其他文件

可以有两种方法:

  • 一是在<build>元素下添加<resources>进行配置(一般都用这种)。
  • 另一种是在<build><plugins>子元素中配置maven-resources-plugin等处理资源文件的插件。

配置resouces方式

<build>
     <resources>
       <resource>
           <directory>src/main/resources</directory>
           <excludes>
               <exclude>/*.properties</exclude>
               <exclude>/.xml</exclude>
            </excludes>
           <filtering>false</filtering>
       </resource>
       <resource>
           <directory>src/main/java</directory>
           <includes>
               <include>**/.properties</include>
               <include>*/.xml</include>
           </includes>
           <filtering>false</filtering>
       </resource>
   </resources>
</build>
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

配置资源处理插件

  1. {<plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
            <execution>
                <id>copy-xmls</id>
                <phase>process-sources</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <outputDirectory>{basedir}/target/classes</outputDirectory>
                    <resources>
                        <resource>
                            <directory>{basedir}/src/main/java</directory>
                            <includes>
                                <include>*/.xml</include>
                            </includes>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>}
    

另一个插件也能完成相同的功能

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>add-resource</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>add-resource</goal>
            </goals>
            <configuration>
                <resources>
                    <resource>
                        <directory>src/main/java</directory>
                        <includes>
                            <include>**/*.xml</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>     

打包时文件相关的配置
打包时target/classes目录中的资源文件会和class字节码一起被打进jar包或war包中。有时候默认的情况不能完全满足需求,如target/classes目录中的一些文件不希望打入jar包中,就需要额外配置maven-jar-plugin插件。

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <excludes>
                <exclude>*.properties</exclude>
            </excludes>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <mainClass>xxxxxx.ConsoleLauncher</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值