2010-05-26 2 views
1

Я хотел бы создать приложение .jar из проекта, сделанного в Maven.Пользовательский дескриптор сборки для создания банки с зависимостями

Я работаю в Eclipse, и я сделал: запустить как/Maven сборки: сборка

Это сообщение об ошибке:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-4:assembly (default-cli) on project FeelIndexer: Error reading assemblies: No assembly descriptors found. 

Это мой assamble.xml

<assembly> 
    <id>exe</id> 
    <formats> 
     <format>jar</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
     <dependencySet> 
      <outputDirectory></outputDirectory> 
      <outputFileNameMapping></outputFileNameMapping> 
      <unpack>true</unpack> 
      <scope>runtime</scope> 
      <includes> 
      <include>commons-lang:commons-lang</include> 
      <include>commons-cli:commons-cli</include> 
      </includes> 
     </dependencySet> 
    </dependencySets> 
    <fileSets> 
     <fileSet> 
      <directory>target/classes</directory> 
      <outputDirectory></outputDirectory> 
     </fileSet> 
    </fileSets> 
</assembly> 

I думаю, что я должен включить что-то еще для добавления зависимостей проекта muy, но я не знаю, как это сделать! Предложения?

Update: Ниже мой assembly.xml

<assembly> 
     <id>exe</id> 
     <formats> 
     <format>jar</format> 
     </formats> 
     <includeBaseDirectory>false</includeBaseDirectory> 
     <dependencySets> 
     <dependencySet> 
      <outputDirectory></outputDirectory> 
      <outputFileNameMapping></outputFileNameMapping> 
      <unpack>true</unpack> 
      <scope>runtime</scope> 
      <includes> 
      <include>commons-lang:commons-lang</include> 
      <include>commons-cli:commons-cli</include> 
      </includes> 
     </dependencySet> 
     </dependencySets> 
     <fileSets> 
     <fileSet> 
      <directory>target/classes</directory> 
      <outputDirectory></outputDirectory> 
     </fileSet> 
     </fileSets> 
    <plugins> 
      <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <configuration> 
      <descriptors> 
      <descriptor>src/main/assembly/src.xml</descriptor> 
      </descriptors> 
     </configuration> 
      </plugin> 
    </plugins> 
    </assembly> 

Где я мог найти свою конфигурацию Maven сборки-плагин ??

Я попробовал два варианта вы сказали мне:

  • Использование предопределенного assembly.xml
  • Установка плагина

У меня был один и тот же результат: S

+0

Можете ли вы предоставить действительный пример assemble.xml? –

+0

Просьба также указать конфигурацию вашего maven-assembly-plugin –

ответ

3

Чтобы использовать пользовательскую сборку дескриптора, вы должны объявить его в конфигурации плагина:

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <configuration> 
      <descriptors> 
      <descriptor>src/main/assembly/src.xml</descriptor> 
      </descriptors> 
     </configuration> 
     [...] 
     </plugin> 
    </plugins> 
</project> 

Кстати, не предопределенная сборка jar-with-dependencies соответствует вашим потребностям? Я не вижу много различий с пользовательской сборки и мое предложение было бы использовать предопределенный один:

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     [...] 
    </plugin> 
    </plugins> 
</project> 

Update: Я не понимаю, что вы делаете, и я не уверен, что вы понял, как работает плагин сборки.

  1. Конфигурация Maven Сборка плагинов (вышеуказанные образцы, заключены в <plugin>) идет в pom.xml, а не в дескрипторе сборки.
  2. Если вы сконфигурируете Maven Assembly Plugin для использования src/main/assembly/src.xml в качестве дескриптора сборки, файл должен существовать (чтобы либо переименовать дескриптор сборки, либо изменить конфигурацию, приведенный выше пример был просто ... примером).
  3. Из того, что я вижу, вам не нужен пользовательский дескриптор сборки. Вы могли бы просто использовать второй фрагмент, который я дал в своем первоначальном ответе (поместите его в свой pom.xml).

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

  • Нет связанных вопросов^_^