2009-11-27 3 views
1

J'ai un simple pom et ajouté un ant-run à la compilation mais il ne s'exécute que quand je fais ce qui suit: mvn install antrun: exécuter
mvn install - ne traite pas les antrun mvn antrun: run - ne traite pas les antrunComment lier une exécution de plugin à une phase dans maven sans me forcer à spécifier le plugin sur la ligne de commande

Je pensais que de relier entre eux le plug-in à la phase de lifecyce que le plugin serait exécuté lorsque j'essayerais d'atteindre cette phase. Ce n'est pas ce qui se passe.

Ai-je manqué quelques nuances, ai-je besoin d'un profil qui active le plugin?

Merci pour l'aide (pom ci-dessous)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.mycompany.app</groupId> 
<artifactId>my-app</artifactId> 
<packaging>jar</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>my-app</name> 
<url>http://maven.apache.org</url> 
<build> 
    <pluginManagement> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.3</version> 
    <executions>  
     <execution> 
     <id>antecho</id> 
     <phase>compile</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     <configuration> 
      <tasks> 
      <echo message="Hello,world"/> 
      </tasks> 
     </configuration> 
     </execution> 
    </executions> 

     </plugin> 
    </plugins> 
    </pluginManagement> 
    </build> 
<dependencies> 
<dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId> 
<version>3.8.1</version> 
<scope>test</scope> 
</dependency> 
</dependencies> 
</project> 

Répondre

4

Vous avez spécifié le plug-in ci-dessous la section <pluginManagement>. Cela signifie que cette configuration sera utilisée si le plugin est également déclaré directement sous build/plugins, par exemple dans un POM enfant.

Pour le faire fonctionner en l'occurrence enlever les balises <pluginManagement> afin que <plugins> est directement sous <build> comme ceci:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     ... 
    </plugin> 
    </plugins> 
</build> 
+0

Merci. On dirait que la gestion des plugins est pour un parent pom de définir les plugins utilisés par les enfants permettant les remplacements. Cela expliquerait pourquoi ça ne fonctionnait pas. –

0

Vous devez ajouter une phase.

.: par exemple

 <executions> 
      <execution> 
       <id>xml2fastinfoset</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>xml2fastinfoset</goal> 
       </goals> 
      </execution> 
     </executions> 
Questions connexes