2009-09-08 1 views
3

Я настроил мой дескриптор сборки иметь сборку типа баночки поMaven сборка плагина поддержка Jar формат?

<formats> 
    <format>jar</format> 
</formats> 

Однако на управлении МВН установить получение архивных файлов вместо jar.Where я пошло не так?

+0

Вы можете разместить остальную сборку? –

ответ

2

Эта конфигурация производит сборку банку с классификатором jar-assembly containi ng только содержимое цели/классов. При необходимости вы можете добавить дополнительные наборы файлов, чтобы добавить другой контент в банку. Чтобы убедиться, что у вас нет zip-архивов из любых предыдущих прогонов в вашем целевом каталоге, вы можете удалить его или запустить mvn clean.

<assembly> 
    <id>jar-assembly</id> 
    <formats> 
    <format>jar</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
    <fileSet> 
     <directory>${project.build.outputDirectory}</directory> 
     <outputDirectory>/</outputDirectory> 
    </fileSet> 
    </fileSets> 
</assembly> 

Конфигурация плагина должна выглядеть примерно так. Примечание установка appendAssemblyId ложь будет вызывать банку по умолчанию будет заменен на баночке из сборки, удалите этот элемент, если это не желаемое поведение:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2-beta-2</version> 
    <executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
     <goal>single</goal> 
     </goals> 
     <configuration> 
     <appendAssemblyId>false</appendAssemblyId> 
     <descriptors> 
      <descriptor>src/main/assembly/archive.xml</descriptor> 
     </descriptors> 
     </configuration> 
    </execution> 
    </executions> 
</plugin>  
2

Почему вы не используете jar-with-dependencies pre-defined assembly? Ниже файла дескриптора:

<assembly> 
    <id>jar-with-dependencies</id> 
    <formats> 
    <format>jar</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
    <dependencySet> 
     <unpack>true</unpack> 
     <scope>runtime</scope> 
    </dependencySet> 
    </dependencySets> 
    <fileSets> 
    <fileSet> 
     <directory>${project.build.outputDirectory}</directory> 
    </fileSet> 
    </fileSets> 
</assembly> 

Чтобы использовать assembly:assembly используя предопределенный дескриптор, выполните команду:

mvn assembly:assembly -DdescriptorId=jar-with-dependencies 

Чтобы произвести сборку как часть нормального построения цикла, связать одного или одного каталога харизмы в фаза пакета (см Usage):

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     <executions> 
      <execution> 
      <id>make-assembly</id> <!-- this is used for inheritance merges --> 
      <phase>package</phase> <!-- append to the packaging phase. --> 
      <goals> 
       <goal>single</goal> <!-- goals == mojos --> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     [...] 
</project> 
+1

, что дескриптор свяжет все зависимости проекта в банке, это не всегда то, что нужно –

+0

Где у вас такая ссылка? Это отличается от того, что находится на сайте Maven: http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies – User1

+0

@ User1 Ошибка Google :) Я действительно был указывая на очень старую версию документации. Спасибо что подметил это. –