2014-05-21 42 views
5

我想雅虎smush.it在Maven構建整合的圖像壓縮在建本身自動化。在整合Maven雅虎smush.it建立圖像壓縮

任何人都可以幫助我這麼做嗎?

我對其他圖書館也是開放的。 [後端就是Java。]

+0

這裏的插件https://github.com/nitinsurana/yahoo-smush-maven-plugin –

回答

2

你有沒有考慮寫一個小Maven插件這個自動化自己?插件API非常好,而且非常簡單 - 您可以查看here。基本上,你會創造,需要一些XML參數,併爲您執行轉換插件項目:

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

然後,在希望使用新寫入的魔力的pom.xml,作爲下<plugins>標籤如下方式使用它<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> 

然後你可以期望這三個圖像將被保存到壓縮文件夾的資源,這隨後會在以後的生命週期階段打包。很明顯,這裏有很多靈活性來確定圖像的來源和保存位置。但是,mojo本身非常簡單,這就是您如何自動化應用程序特定的任務以使用Maven。