2012-01-19 2 views
9

Я пытаюсь загрузить tomcat zip artifact и распаковать его в папку с именем tomcat. Что я могу получить tomcat/apache-tomcat-7.0.19/ Как я могу избавиться от раздражающего промежуточного каталога?Maven: распаковать zip артефакт в имя папки SPECIFIC

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
<version>2.4</version> 
<executions> 
    <execution> 
     <id>unpack-tomcat</id> 
     <phase>process-sources</phase> 
     <goals> 
      <goal>unpack</goal> 
     </goals> 
     <configuration> 
      <artifactItems> 
       <artifactItem> 
        <groupId>org.apache</groupId> 
        <artifactId>tomcat</artifactId> 
        <version>7.0.19-win64</version> 
        <type>zip</type> 
        <overWrite>false</overWrite> 
        <outputDirectory>tomcat</outputDirectory> 
        <excludes>webapps/**</excludes> 
       </artifactItem> 
      </artifactItems>        
     </configuration> 
    </execution> 
</executions> 
</plugin> 

ответ

-2

Используйте unpack-depencencies цель и установить useSubDirectoryPerArtifact ложь.

+0

Я не умею работать. Теперь он просто приносит мне все зависимости, которые я получил, и не фильтрует только tomcat. – archmisha

+0

В разделе конфигурации вашего объявления плагина в вашем pom add tomcat BenjaminLinus

+0

Я разместил весь код плагина pom. Это все еще не работает для меня. Просто создайте вложенный каталог – archmisha

5

Может быть, есть более «mavenish» путь для достижения моего предложения :) еще с помощью Maven муравья плагина может быть обходным путем для вашей ситуации:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.7</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <configuration> 
          <target> 
           <move file = "tomcat/apache-tomcat-7.0.19/*" 
             tofile = "tomcat" /> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
        <execution> 
         <phase>package</phase> 
         <configuration> 
          <target> 
           <delete dir = "tomcat/apache-tomcat-7.0.19"/> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
</plugin> 
2

Maven распаковывать с плоской траекторией

http://pulkitsinghal.blogspot.com/2011/04/jetspeed-finally-unpack-plugin-with.html :

Нет абсолютно никакого способа (известного мне, как об этом письме в блоге) , чтобы получить этот плагин maven n выплюнуть плоскую структуру.

Так хорошая альтернатива заключается в использовании jetspeed-unpack-maven-plugin которого позволяет пользователям указывать <flat>true</flat> как часть configuration для того, чтобы получить нужный файл без нагрузки иметь относительный путь от корня артефакта включенного как хорошо.

Документы заявляют, что этот плагин также может распаковать произвольный относительный путь внутри zipped maven artifact в конкретную папку назначения.