Плагин maven appassembler не включает текущий артефакт, если он называется итеративным - PullRequest
5 голосов
/ 12 мая 2011

[Обновление] Исходный вопрос (ниже) решен.Мне нужно позвонить

mvn package appassembler:assemble

вместо

mvn package
mvn appassembler:assemble

Вопрос: Почему есть разница?

[Оригинал]

Я пытаюсь использовать плагин maven appassembler для создания инструмента командной строки со всеми собранными зависимостями.Это почти работает, но артефакт текущего модуля отсутствует.Все зависимые артефакты копируются в репозиторий, а путь к классу в летучей мыши включает текущий артефакт.Конфигурация выглядит следующим образом:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <configuration>
                <platforms>
                    <platform>windows</platform>
                    <platform>unix</platform>
                </platforms>
                <programs>
                    <program>
                        <mainClass>${mainclass}</mainClass>
                        <name>huffman</name>
                    </program>
                </programs>
            </configuration>
        </plugin>

Есть идеи?

1 Ответ

12 голосов
/ 14 мая 2011

Цель предназначена не для автономной работы, а как часть жизненного цикла - поэтому от целей, установленных в package, зависит процесс, который будет возвращен в экземпляр проекта о том, что он создал.Когда вы запускаете это как две команды Maven, информация теряется.

Вместо любой из этих команд вы должны использовать что-то вроде:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>appassembler-maven-plugin</artifactId>
  <configuration>
   ... 
  </configuration>
  <executions>
    <execution>
      <id>assemble</id>
      <goals>
        <goal>assemble</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Это означает, что вам просто нужнозапустить mvn package, и оба шага будут выполнены.

Если вы намеревались сделать часть appassembler необязательной, вы можете вместо этого поместить ее в профиль с тем же кодом, что и выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...