Maven сборка: сборка - PullRequest
5 голосов
/ 09 июня 2009

Здравствуйте. Я пытаюсь создать собственный дескриптор ref в родительском pom, который упаковывает все зависимости с исходниками. Я очень хорошо получил файл assembly.xml, но когда я добавляю его в базовую сборку POM: сборка завершается следующим образом:

[INFO] [assembly:assembly]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error reading assemblies: No assembly descriptors found.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error reading assemblies: No assembly descriptors found.

Но сборка: кажется, что сингл работает правильно. Я попытался добавить ссылку на jar-with-dependencies в POM, но я не уверен, возможно ли это вообще.

Вот что у меня есть в моём базовом помпе:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-3</version>
    <dependencies>
        <dependency>
            <groupId>mycompany.jar.assembly</groupId>
            <artifactId>jar-with-dependencies-and-sources-test</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

Кто-нибудь знает, кому заставить это работать, когда я запускаю сборку mvn: сборка из командной строки?

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 09 июня 2009

Я не уверен, но у меня есть подозрение. Вы определяете сборку: single как часть фазы пакета, и идентифицируете дескриптор там в элементе выполнения. Это может означать, что плагин не знает, где искать дескриптор при запуске Assembly: Assembly. Попробуйте скопировать элемент <configuration> снаружи элемента <executions>.

Один из моих poms выглядит следующим образом, и я постоянно использую ассемблер: сборка:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.1</version> 
  <configuration>
    <finalName>myJar</finalName>
    <descriptors>
      <descriptor>src/main/config/descriptor.xml</descriptor>
    </descriptors>
    <archive>
      <manifest>
        <mainClass>org.foo.Bar</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin> 

Примечание src/main/config не является стандартным путем Maven, но я не определил какую-либо специальную обработку этого.

0 голосов
/ 09 июня 2009

Где у вас есть файл assembly.xml? Рабочий каталог Maven - это каталог модуля (тот, который содержит pom.xml). Если ваш файл assembly.xml находится не в том же каталоге, что и этот файл pom.xml, вы должны указать путь

...