2011-11-10 44 views

回答

16

不,配置文件不能被继承。

但是,您可以拥有多个活动配置文件,通过将两个配置文件中的常见元素分解为第三个配置文件,从而在您激活其他两个配置文件中的任何一个时激活该配置文件,从而完成大致相同的工作。

1

严格的说,配置文件不会继承在父pom中定义的配置文件不在子poms中,根据maven文档。但是,在父poms中指定的属性和构建插件(而不是pluginManagement)可以被激活,从而修改子poms的构建环境。 例如,如果我有一个父POM A,它具有以下配置文件部分:

</profiles> 
     <profile> 
      <id>integrationTest</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <configuration> 
          <parallel>none</parallel> 
          <excludes> 
           <exclude>**/*Test.java</exclude> 
          </excludes> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-failsafe-plugin</artifactId> 
         <configuration> 
          <includes 
           <include>**/*IT.java</include> 
          </includes> 
          <!-- need to exclude nothing as it is possible that some by default some tests are excluded and we need to override that --> 
          <excludes> 
           <exclude>none</exclude> 
          </excludes> 
          <parallel>none</parallel> 
         </configuration> 
        </plugin>    
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

然后它没有在默认配置构建故障安全插件,但通过从一个POM继承的孩子聚甲醛乙父标记,然后从子pom目录运行'mvn clean install -P integrationTest',它将采用A中指定的插件信息。

相关问题