2015-09-16 5 views
5

Sto utilizzando il plugin maven-assembly-per creare un file zip del progetto quando si crea il progetto. Ha successo Ora quello che voglio è comprimere solo directory specifiche nel progetto.Come zippare solo directory specifiche utilizzando il plug-in di assembly Maven

Questo è il codice per plugin nel mio pom che ho usato in precedenza.

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>make shared resources</id> 
         <goals> 
          <goal>single</goal> 
         </goals> 
         <phase>package</phase> 
         <configuration> 
          <descriptors> 
           <descriptor>resource.xml</descriptor> 
          </descriptors> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

E il file resource.xml è il seguente.

<assembly> 
    <id>resources</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
     <fileSet> 
      <!-- Since it bundles all the units --> 
      <directory></directory> 
      <outputDirectory>/project</outputDirectory> 
      <excludes> 
       <exclude>pom.xml</exclude> 
       <exclude>*.iml</exclude> 
       <exclude>*.jar</exclude> 
       <exclude>**/src/**</exclude> 
       <exclude>**/target/**</exclude> 
       <exclude>resource.xml</exclude> 
      </excludes> 
     </fileSet> 
    </fileSets> 
</assembly> 

Desidero comprimere solo alcune directory del progetto nella generazione di Maven.

Come esempio, ho la seguente struttura di cartelle nel progetto.

project 

    |_directories 

     |_dir1 
      |_ .... 
     |_dir2 
      |_ .... 
     |_dir3 
      |_ .... 
     |_pom.xml 

Quello che voglio è rendere il file zip che include solo la cartella delle directory. Quando estrai il mio file zip che dovrebbe contenere solo le quattro directory in esso contenute.

Come posso ottenere questo risultato? Il plugin maven-assembly-è sufficiente per farlo o dovrei creare un mojo?

+1

hai provato nominare le directory che si desidera in modo esplicito utilizzando 'tag include'? https://maven.apache.org/guides/mini/guide-assemblies.html – user1717259

+0

sei sicuro che il pom.xml sia in 'directory 'non in' project' – blackbuild

risposta

10

Hai utilizzato in modo improprio directory e outputDirectory.

directory è il percorso nel progetto in cui i file per essere compressi sono tratti da (quindi dovrebbe essere directories nel tuo caso), outputDirectory la cartella all'interno del file generare zip, dove il set di file è posto (dal momento che non lo fai vuole la directory principale, dovrebbe essere /):

<assembly> 
    <id>resources</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
     <fileSet> 
      <!-- Take everything inside the directories folder --> 
      <directory>directories</directory> 
      <!-- And place it inside the root of the zip file --> 
      <outputDirectory>/</outputDirectory> 
     </fileSet> 
    </fileSets> 
</assembly> 
Problemi correlati