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.
Oto wtyczka https://github.com/nitinsurana/yahoo-smush-maven-plugin –