2014-05-21 14 views
5

Ich möchte Yahoo smush.it in maven build integrieren, um die Bildkomprimierung im Build selbst zu automatisieren.Integriere yahoo smush.it in maven build für Bildkomprimierung

Kann mir jemand helfen?

Ich bin offen für andere Bibliotheken. [Back-End ist Java.]

+0

Hier ist das Plugin https://github.com/nitinsurana/yahoo-smush-maven-plugin –

Antwort

2

Haben Sie darüber nachgedacht, ein kleines Maven-Plugin zu schreiben, um das selbst zu automatisieren? Die Plugin-API ist großartig und wirklich einfach - Sie können es ausprobieren here. Grundsätzlich würden Sie ein Plugin-Projekt erstellen, die einige XML-Parameter und führt die Konvertierung für Sie nimmt:

@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. 
    } 
} 

Dann wird in der pom.xml, dass Ihre neu geschrieben mojo verwenden möchte, verwenden Sie es wie folgt in der <plugins> Tag unter <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> 

dann können Sie die drei Bilder erwarten gespeichert in die komprimierten Ressourcen-Ordner werden, die in einer späteren Lebenszyklusphase erhalten werden dann verpackt werden. Offensichtlich gibt es hier eine Menge Flexibilität, genau wo die Bilder herkommen und gespeichert werden. Aber das Mojo selbst ist ziemlich einfach, und genau so automatisieren Sie Ihre anwendungsspezifischen Aufgaben, um mit Maven zu arbeiten.