2011-12-19 90 views
1

我們有我們與Maven使用收拾釋放了,
這的安裝文件夾有一些靜態文件,以及一個pom.xml
構建目標是複製安裝文件夾目標安裝文件夾中的靜態文件以及存儲庫中的一些zip文件 - 展開它們並將它們放在/ unzipped下的目標文件夾中。的Maven - 模塊和moduleSet VS依賴和dependencySets

安裝文件夾:

/installation_folder 
pom.xml 
    /some_files 
      /file1 
      /file2 

目標文件夾應該是這樣的:

/target 
    /installation_files 
     /some_files 
      /file1 
      /file2 
     /unzipped 
      /prj1 - unzipped artifact prj1 from the repository 
      /prj2 - unzipped artifact prj2 from the repository 

在此「安裝POM」 - 我要組件的XML的引用;我能夠複製靜態文件 - 並從存儲庫中獲取artifacs,
問題是 - 從存儲庫中複製zip並將它們展開到目標/解壓縮文件夾中
應該使用Modules和moduleSet還是依賴項和dependencySets?
如若pom.xml的+ assembly.xml樣子: project.group installation_project POM

<modules> 
    <module>prj1</module>   
    <module>prj2</module>  
</modules> 

...

和assembly.xml:

<moduleSets> 
    <moduleSet> 
     <includes> 
      <include>*:*</include> 
     </includes> 
      <binaries> 
      <unpack>true</unpack> 
      </binaries> 
     </binaries> 
    </moduleSet> 


還是應該看起來像這樣:

<project> 
<groupId>project.group</groupId> 
<artifactId>installation_project</artifactId> 
<packaging>pom</packaging> 

    <dependencies> 

     <dependency> 
      <artifactId>prj1</artifactId> 
      <groupId>gruop_id</groupId> 
      <version>1.0-SNAPSHOT</version> 
      <type>zip</type> 
     </dependency> 
     <dependency> 
      <artifactId>prj2</artifactId> 
      <groupId>gruop_id</groupId> 
      <version>2.0</version> 
      <type>zip</type> 
     </dependency> 
    </dependencies> 

...

和assembly.xml:

<dependencySets> 
    <dependencySet> 
     <outputDirectory>installation_files/unzipped/</outputDirectory> 
     <outputFileNameMapping>${artifact.artifactId}</outputFileNameMapping> 
     <includes> 
      <include>*:*:zip</include> 
     </includes> 
     <unpack>true</unpack> 
    </dependencySet> 
</dependencySets> 

謝謝!

回答

1

另一種方式是隻需要maven依賴插件,目標=解包。

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>unpack</id> 
     <phase>generate-resources</phase> 
     <goals> 
      <goal>unpack</goal> 
     </goals> 
     <configuration> 
     <artifactItems> 
      <artifactItem> 
       <groupId></groupId> 
       <artifactId></artifactId> 
       <version></version> 
       <type></type> 
       <overWrite></overWrite> 
       <outputDirectory></outputDirectory> 
      </artifactItem> 
     </artifactItems> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

另一種方法是使用組裝插件,但我覺得很麻煩,通常意味着更復雜的裝配創作不是簡單的解壓縮/荏苒。