2014-05-21 8 views

risposta

2

Hai mai pensato di scrivere un piccolo plug-in Maven per automatizzarlo da solo? L'API del plugin è eccezionale e davvero semplice: puoi verificarlo dallo here. In sostanza, si potrebbe creare un progetto plugin che prende alcuni parametri XML ed esegue la conversione per voi:

@Mojo(name = "compress", defaultPhase = "compile") 
public class SmushItCompressMojo extends AbstractMojo { 

    @Parameter(property = "images") 
    String[] images; 

    @Parameter(property = "destination") 
    String destination; 

    @Override 
    public void execute() throws MojoExecutionException, MojoFailureException { 
     // Validate your inputs. 
     // For each image file: 
      // Compress it using a request to smush.it. 
      // Save the compressed image to the destination file. 
     // Report any errors/success. 
    } 
} 

Poi, nel pom.xml che vuole utilizzare il mojo appena scritto, lo usano come segue nel tag <plugins> sotto <build>:

<plugin> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>smush-it-maven-plugin</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <executions> 
     <execution> 
      <id>compress</id> 
      <goals> 
       <goal>compress</goal> 
      </goal> 
      <configuration> 
       <images> 
        <image>${project.build.directory}/../images/1.png</image> 
        <image>${project.build.directory}/../images/2.png</image> 
        <image>${project.build.directory}/../images/3.png</image> 
       </images> 
       <destination>${project.build.directory}/../src/main/resources/compressed/ 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

allora si può aspettare le tre immagini da salvare nella cartella risorse compressa, che sarà quindi ottenere confezionato in una fase del ciclo di vita più tardi. Ovviamente c'è molta flessibilità qui circa esattamente da dove le immagini provengono e vengono salvate. Ma il mojo stesso è piuttosto semplice, e questo è esattamente il modo in cui automatizzi le tue attività specifiche per lavorare con Maven.

Problemi correlati