2014-05-21 16 views

Odpowiedz

2

Czy rozważałeś napisanie małej wtyczki Mavela, aby zautomatyzować to samodzielnie? Interfejs API wtyczki jest świetny i naprawdę prosty - możesz to sprawdzić here. Zasadniczo, należy utworzyć projekt wtyczek, które ma kilka parametrów XML i wykonuje konwersję dla Ciebie:

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

Następnie w pom.xml który chce korzystać z nowo napisany mojo, użyj go w następujący sposób w tagu <plugins> pod <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> 

wtedy można oczekiwać, że trzy obrazy mają być zapisane w folderze zasobów sprężonego, które następnie dostać zapakowany w późniejszym etapie cyklu życia. Oczywiście istnieje tu duża elastyczność co do tego, skąd pochodzą i które można zapisać. Jednak samo mojo jest całkiem proste i właśnie w ten sposób zautomatyzujesz zadania specyficzne dla aplikacji, aby pracować z Maven.