2010-11-22 28 views
1

J'ai séparé un projet Java EE dans les sous-modules suivants:Dans Maven, comment personnaliser les phases du cycle de vie?

  • projet-guerre
  • projet ejb
  • projet-oreille
  • projet test

J'ai aussi un pom racine qui inclut les modules ci-dessus. Puisque j'ai des tests dans un projet séparé, il n'y a aucun intérêt à exécuter les phases de test dans les 3 premiers modules, car il n'y a aucun intérêt à compiler ou à conditionner le dernier module puisqu'il ne contient que des tests pour les 3 autres modules. Ma question est: Comment puis-je supprimer les phases de test des 3 premiers modules et comment puis-je supprimer les autres phases du projet de test?

Répondre

2

Vous pouvez le faire en créant des profils différents: http://maven.apache.org/guides/introduction/introduction-to-profiles.html

exp:

<profile> 
     <id>deploywar</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>net.fpic</groupId> 
        <artifactId>tomcat-deployer-plugin</artifactId> 
        <version>1.0-SNAPSHOT</version> 
        <executions> 
         <execution> 
          <id>pos</id> 
          <phase>install</phase> 
          <goals> 
           <goal>deploy</goal> 
          </goals> 
          <configuration> 
           <host>${deploymentManagerRestHost}</host> 
           <port>${deploymentManagerRestPort}</port> 
           <username>${deploymentManagerRestUsername}</username> 
           <password>${deploymentManagerRestPassword}</password> 
           <artifactSource> 
            address/target/addressservice.war 
           </artifactSource> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

    <!-- Defines the QA deployment information --> 
    <profile> 
     <id>qa</id> 
     <activation> 
      <property> 
       <name>env</name> 
       <value>qa</value> 
      </property> 
     </activation> 
     <properties> 
      <deploymentManagerRestHost>10.50.50.50</deploymentManagerRestHost> 
      <deploymentManagerRestPort>58090</deploymentManagerRestPort> 
      <deploymentManagerRestUsername> 
       myotherusername 
      </deploymentManagerRestUsername> 
      <deploymentManagerRestPassword> 
       myotherpassword 
      </deploymentManagerRestPassword> 
     </properties> 
    </profile> 

qui vous appelleriez le profil de deployWar dans un cli avec mvn -Pdeploywar -Denv=dev clean install

+0

Une chose à noter est ce profil disparaît dans Maven 3 autant que je sache. – CoolBeans

+0

Espérons qu'ils rendent la compatibilité inverse ... La majorité de nos fichiers pom sont des profils. – wajiw

+0

@CoolBeans - ce qui s'en va, ce sont les profils définis en dehors du fichier POM ou du fichier de paramètres. –