2009-09-08 7 views
8

Nel mio progetto corrente utilizziamo alcuni plug-in necessari per altri parametri dei plug-in, come proprietà-maven-plugin o buildnumber-plugin.Come associare un obiettivo del plug-in a un altro obiettivo del plug-in

<?xml version="1.0"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>mygroup</groupId> 
    <artifactId>myartifact</artifactId> 
    <packaging>pom</packaging> 
    <version>v0</version> 
    <name>myProject</name> 

    <properties> 
      <env>dev</env> 
    </properties> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-2</version> 
      <configuration> 
      <files> 
       <file>${basedir}/configurations/${env}.properties</file> 
      </files> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>read-project-properties</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>com.wakaleo.schemaspy</groupId> 
      <artifactId>maven-schemaspy-plugin</artifactId> 
      <version>1.0</version> 
      <configuration> 
       <databaseType>mysql</databaseType> 
       <database>${database.schema}</database> 
       <host>${database.host}</host> 
       <user>${database.user}</user> 
       <password>${database.pwd}</password> 
       </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Il problema è che quando si esegue direttamente un obiettivo plug-in, gli obiettivi binded sulla fase di inizializzazione (o convalidare) non vengono eseguiti. Quindi, per generare lo schema di spionaggio dobbiamo digitare:

$> mvn org.codehaus.mojo:properties-maven-plugin:read-project-properties schemaspy:schemaspy 

Vogliamo dire che le proprietà del plugin e numero build plug-in devono essere eseguite per ogni comando Maven modo che possiamo digitiamo:

$> mvn schemaspy:schemaspy 

C'è un modo pulito per farlo (senza scripting)?

risposta

6

Il modo più semplice sarebbe quella di impegnare la schemaspy obiettivo di una fase del ciclo di vita (in particolare per quanto avete già fatto questa ffor gli altri due plugin), così poi si può semplicemente eseguire qualcosa di simile pacchetto mvn e hanno tutti tre i plugin eseguito nelle fasi appropriate.

Se si desidera che il plug-in schmespy venga eseguito solo in determinate circostanze, inserirlo in un profilo, quindi eseguire il pacchetto mvn -P schemaspy per attivarlo. La configurazione per ottenere questo si presenta così:

<profiles> 
    <profile> 
    <id>schemaspy</id> 
    <plugin> 
     <groupId>com.wakaleo.schemaspy</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
      <goal>schemaspy</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <databaseType>mysql</databaseType> 
     <database>${database.schema}</database> 
     <host>${database.host}</host> 
     <user>${database.user}</user> 
     <password>${database.pwd}</password> 
     </configuration> 
    </plugin> 
    </profile> 
</profile> 
+0

Non ci ho mai pensato. Mi piace. Grazie. – noirbizarre

+3

Mi dispiace, ma questo non mi aiuta. Possiamo legare un obiettivo a un altro obiettivo? Ho bisogno di calcolare il nome del ramo usando un plugin nel contesto della ramificazione per una versione. Sarebbe strano chiedere agli sviluppatori di abilitare un profilo ed eseguire una fase del ciclo di vita per creare un ramo, quando normalmente eseguono semplicemente "release: branch" ... –

Problemi correlati