2013-05-28 5 views
4

У меня есть профиль maven, определенный так;Простой способ совместного использования конфигурации профиля среди профилей в Maven?

<profile> 
      <id>instrumentation</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
       <property> 
        <name>instrumentation.enabled</name> 
        <value>true</value> 
       </property> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>cobertura-maven-plugin</artifactId> 
         <version>2.5.1</version> 
         <configuration> 
          <formats> 
           <format>xml</format> 
           <format>html</format> 
          </formats> 
          <instrumentation> 
           <ignores> 
           </ignores> 
           <excludes> 
            <exclude>**/Test*.class</exclude> 
            <exclude>**/Abstract*.java</exclude> 
            <!-- Log Classes --> 
            <exclude>**/Log.class</exclude> 
            <!-- Exception Classes --> 
            <exclude>**/*Exception.class</exclude> 
           </excludes> 
          </instrumentation> 
         </configuration> 
         <executions> 
          <execution> 
           <phase>prepare-package</phase> 
           <goals> 
            <goal>cobertura</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
        <plugin> 
         <artifactId>maven-resources-plugin</artifactId> 
         <version>2.6</version> 
         <executions> 
          <execution> 
           <id>copy-resources</id> 
           <phase>package</phase> 
           <goals> 
            <goal>copy-resources</goal> 
           </goals> 
           <configuration> 
           <!-- this is important --> 
            <overwrite>true</overwrite> 
            <!-- target --> 
            <outputDirectory>${env.DERBASE}/java/${project.artifactId}/target/classes</outputDirectory> 
            <resources> 
             <resource> 
             <!-- source --> 
              <directory>${env.DERBASE}/java/${project.artifactId}/target/generated-classes/cobertura</directory> 
             </resource> 
            </resources> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

Так что я хотел бы это изменить эту линию;

<goal>cobertura</goal> 

к этому;

<goal>instrumentation</goal> 

Если переменная ENV, такие как INSTRUMENTATION_EXCLUDE_TESTS устанавливается.

Мне просто интересно, какой лучший способ выполнить это? (т. е. без копирования и вставки профиля с одной строкой)

Большое спасибо!

ответ

2

Итак, я решил это, установив переменную окружения, которая может быть либо;

export COBERTURA_GOAL=cobertura 

или

export COBERTURA_GOAL=instrument 

Тогда в моем ПОМ, определяется следующим свойством;

<cobertura.goal>${env.COBERTURA_GOAL}</cobertura.goal> 

которая была вставлена;

<goal>${cobertura.goal}</goal> 
Смежные вопросы