Maven:项目配置多个源文件夹

当 Maven 规约的默认配置不能够满足我们的需求时,我们就要动手修改项目的 Maven 配置,让我们的项目能够与 Maven 很好地协同工作,那我们今天讨论的主要几点:

  1. 配置多个源文件夹来管理我们项目的模块

  2. 配置多个资源文件夹来管理我们项目模块的资源文件

  3. 有些遗留代码的一些资源文件是放在源文件夹下的,为了不改变原有项目结构,我希望 Maven 能够从源文件夹下读取资源文件

  4. 我想将项目模块的源文件和资源文件放置在同一个文件夹下,以方便开发与维护

1. 配置项目的pom文件

1.1 Maven 默认的源文件夹及资源文件夹配置 
<build>  
   ...  
   <sourceDirectory> src/main/java </sourceDirectory>  
   <testSourceDirectory> src/test/java </testSourceDirectory>  
   <resources>  
       <resource>  
          <directory> src/main/resources </directory>  
       </resource>  
   </resources>  
   <testResources>  
       <testResource>  
          <directory> src/test/resources </directory>  
       </testResource>  
   </testResources>  
   ...  
</build>  
 
1.2 配置多个资源文件夹

从上面 Maven 的默认配置来看,源文件夹和测试源文件夹都只能配置一个,要配置多个源文件夹比较困难。这里我们先来看看如何配置多个资源文件夹

<build>  
   ...  
   <resources>  
      <resource>  
          <directory> src/main/resources </directory>  
      </resource>  
      <resource>  
          <directory> src/labs/resources </directory>  
       </resource>  
   </resources>  
   ...  
</build> 
<build>  
   ...  
   <resources>  
      <resource>  
          <directory> src/main/resources </directory>  
      </resource>  
      <resource>  
          <directory> src/labs/resources </directory>  
       </resource>  
   </resources>  
   ...  
</build> 
1.3 配置读取源文件夹里的资源文件

为了让 Maven 能够从源文件夹下读取资源文件(或将所有资源文件配置到源文件夹下),我们可以这样配置:

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

这样,不仅 src/main/resources 和 src/labs/resources 这两个目录下的文件会作为资源文件被打包, src/main/java 和 src/labs/java 目录下的所有 .hbm.xml 文件也都会作为资源文件被打包。否则, Maven 构建时不会打包这两个目录下的 .hbm.xml 文件,导致运行时因为找不到资源文件而抛异常。

1.4 配置多个源文件夹

Maven 默认只支持一个源文件夹,为了给项目配置多个源文件夹,我们需要用到一个 Maven 插件,目的是在 Maven 构建生命周期内为项目添加源文件夹:

<build>  
    ...  
    <plugins>  
        ...   
        <!-- build-helper-maven-plugin, 设置多个源文件夹 -->  
        <plugin>  
            <groupId>org.codehaus.mojo</groupId>  
            <artifactId>build-helper-maven-plugin</artifactId>  
            <version>1.4</version>  
            <executions>  
               <execution>  
                  <id>add-source</id>  
                  <phase>generate-sources</phase>  
                      <goals>  
                          <goal>add-source</goal>  
                      </goals>  
                  <configuration>  
                      <sources>  
                          <source>${basedir}/src/labs/java</source>  
                          <!-- 我们可以通过在这里添加多个source节点,来添加任意多个源文件夹 -->  
                          </sources>  
                  </configuration>  
               </execution>  
            </executions>  
       </plugin>  
       ...   
    </plugins>  
    ...   
</build>  
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值