2015-03-06 2 views
0

в моем проекте Мне нужно создать tar с полным содержимым папки. Я делаю это с плагином maven antRun. Мои проблемы заключаются в том, что основной корень не входит в tar. Как вставить папку?Плагин Maven AntRun включает в себя корневую папку на tar

Es. У меня есть

Target 
---temp 
---Example 
------aaa.png 
------bbbb.png 
------rsc 
---------ccc.png 

Im мой file.tar.gz У меня есть

aaa.png 
bbbb.png 
rsc 
---ccc.png 

Я хочу

---Example 
------aaa.png 
------bbbb.png 
------rsc 
---------ccc.png 

кода для создания дегтя

<plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <version>1.7</version> 
        <executions> 
         <execution> 
          <id>tar batch</id> 
          <phase>package</phase> 
          <goals> 
           <goal>run</goal> 
          </goals> 
          <configuration> 
           <target name="tar.gz folder"> 
            <echo message="Starting to compress with tar.gz ${main.builddir}${file.separator}${tar.name.batch} in ${main.builddir}${file.separator}${tar.name.batch}.tar.gz " /> 
            <tar destfile="${main.builddir}${file.separator}${tar.name.batch}.tar" basedir="${main.builddir}${file.separator}${tar.name.batch}" /> 
            <gzip destfile="${project.build.directory}${file.separator}${tar.name.batch}.tar.gz" src="${main.builddir}${file.separator}${tar.name.batch}.tar" /> 
           </target> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

ответ

0

Это не самое чистое решение, но я решил добавить другую подпапку, , поэтому, когда я создаю jar, я помещаю ее в исполняемый файл/исполняемый файл и после создания tar.gz папки первого исполняемого файла.

1

Я хотел бы предложить использовать maven-assembly-plugin вместо maven-antrun-plugin. Вы должны конфигурацию в файле пом так:

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>create-archives</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
       <descriptor>src/assembly/assembly.xml</descriptor> 
       </descriptors> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

Кроме того, нужно иметь assembly descriptor which describes, что должно быть упаковано в архив, как это:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> 

    <id>dist-assembly</id> 

    <formats> 
     <format>tar</format> 
    </formats> 

    <!-- 
    ! The following will include the base directory incl. version 
    ! into the resulting tar. 
    ! The default value is: true. 
    ! <includeBaseDirectory>true</includeBaseDirectory> 
    --> 

    <fileSets> 
    <fileSet> 
     <directory>folder</directory> 
     <outputDirectory>.</outputDirectory> 
    </fileSet> 
    </fileSets> 
</assembly> 

Для управления папки, которые находятся внутри архива вы можете использовать для этого outputDirectory. Элемент управления directory, который должен быть упакован в архив.

Смежные вопросы