2017-07-27 63 views
1

我有被打包爲一個拉鍊使用行家遮陽簾插件命名my-artifact-1.0-SNAPSHOT.zip行家模塊。Maven的拉鍊僞影副本,解壓縮和重命名

一旦神器已安裝到本地Maven回購,我需要:

  1. 複製zip包配置的本地文件夾。
  2. 解壓壓縮文件。
  3. 將文件夾從重命名爲my-artifact-1.0-SNAPSHOTmy-artifact

該過程應該在Windows,Linux,MacOS機器上跨平臺工作。

我讀到它可以通過使用來完成:

  1. Maven的依賴,插件加上另外的插件
  2. Maven的Groovy的插件

會是什麼最好實現這種流程的方式?任何例子都非常感謝。

+0

如果你正確定義了依賴關係,這個工件將自動下載並緩存到你的lo中cal存儲庫...所以問題是爲什麼你需要解壓縮它?如果它是由maven-shade-plugin創建的,它通常是一個包含許多類的jar文件...所以zip文件不是一個好主意... – khmarbaise

+0

我的工件不是常規的jar文件,它是一個zip文件由talend企業工作室使用。而對於本地開發,我已經實現了流解壓構建的工件並部署到talend工作室。這只是爲了本地發展。 –

回答

1

無需在我看來antrun,maven的依賴性,插件應該做的伎倆:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>unpack</id> 
        <phase>validate</phase> 
        <goals> 
         <goal>unpack</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>[your.group.id]</groupId> 
           <artifactId>my-artifact-1.0-SNAPSHOT</artifactId> 
           <version>[your.version]</version> 
           <type>zip</type> 
           <outputDirectory>${project.basedir}/my-artifact/</outputDirectory> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

問候,

湯姆

+0

幾乎可行。這樣配置的結果是: $ {project.basedir} /my-artifact/my-artifact-1.0-SNAPHOST/... {artifact_items} ... 我不需要my-artifact-1.0- SNAPSHOT的路徑 –

+0

讓我重新解釋這個問題。我需要設置解壓後的目錄名稱。沒有在文檔中找到它。 –

+0

嗯好吧,這不會直接與Maven-dependency-plugin afaik ...但這個問題似乎是Zip-Archive中的目錄,我猜我的artifact-1.0-SNAPSHOT也在那裏?您可以使用maven-assembly-plugin創建不帶路徑的zip文件(在彙編描述符中使用/) – tom

0

你有一個可以執行Ant-Tasks的maven插件。這些任務讓你執行很多作品。例如,要解壓文件:

<plugins> 
    <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.8</version> 
     <executions> 
     <execution> 
      <phase>generate-resources</phase> 
      <configuration> 
       <tasks> 
        <unzip src="path/to/zip/file.zip" dest="path/to/unzip" /> 
       </tasks> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
</plugins> 

您可以檢查apache ant頁面中的所有可用任務(請參閱參考資料)。

參考: https://ant.apache.org/manual/Tasks

+0

我很努力配置unzip.src的工件zip文件路徑 –