Maven中资源目录的顺序

时间:2018-08-31 14:43:10

标签: maven-3

我希望设置使用Maven的Java项目,以便在本地开发和运行单元测试时,资源从标准src/main/resourcessrc/test/resources目录中获取,而在应用< em> profile 资源将被特定于部署的资源覆盖。理想情况下,特定于配置文件的资源将是全部资源的子集,因此该过程应首先编写常规资源,然后在第一个之上应用特定于配置文件的资源。

我的目录布局是标准布局,其中 profiles 资源位于src/main/env/{profile}下。

我设法在build / resources下使用多个节来做到这一点:

  <profiles>
    <profile>
      <id>dev</id>
      <activation><activeByDefault>true</activeByDefault></activation>
      <properties>
        <targetEnv>dev</targetEnv>
      </properties>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <targetEnv>test</targetEnv>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <targetEnv>prod</targetEnv>
      </properties>
    </profile>
  </profiles>

 <build>
   <resources>
     <resource>
       <directory>src/main/env/${targetEnv}</directory>
     </resource>
     <resource>
       <directory>src/main/resources</directory>
     </resource>
   </resources>
  <build>

这是可行的,但是,我的第一个尝试是以相反的顺序排列两个资源目录(第一个是常规目录,特定于配置文件的目录),以匹配覆盖过程。相反,它用常规文件覆盖了特定于配置文件的文件。

Maven是否完全保证在build / resources下订购这些节?

0 个答案:

没有答案