2012-05-04 3 views
2

Я работаю с простым проектом, с каталогом webapp в стандартном расположении (src/main/webapp). По какой-то причине похоже, что плагин maven-shade не включает это в финальную сгенерированную банку - он будет включать артефакты src/main/resources по умолчанию. Я попытался использовать следующую конфигурацию, не повезло:Настройка maven-shade-plugin для включения src/main/webapp

<configuration> 
<artifactSet> 
    <includes> 
    <include>*</include> 
    <include>*:*</include> 
    </includes> 
</artifactSet> 
</configuration> 

Любые предложения о том, как сделать это без необходимости перемещения SRC/главная/веб-приложение в SRC/главная/ресурсы/веб-приложение?

спасибо.

Eugen.

+1

Насколько я знаю, эти плагины используются для объединения сосудов вместе, а не от военных пакетов. – Farid

ответ

6

Вы пытались обновить свой раздел сборки с помощью пути к ресурсам?

<build> 
     <resources> 
      <resource> 
       <directory>src/main/webapp</directory> 
      </resource> 
     </resources> 
</build> 

EDIT

Как уже было сказано, затенить цель не военных пакетов.

+1

Тень пригодится, однако, при создании банки со встроенным веб-сервером, где необходимы ресурсы. – h7r

+0

Я, очевидно, не замечаю в своем собственном комментарии, что войны могут иметь встроенные серверы так же, как банки. – h7r

0

Звучит так, что вы хотите упаковать источники в пакет. Существует maven-source-plugin, который создаст банку, содержащую исходные файлы. Кроме того, это обычно делается во время цикла выпуска. Как уже упоминалось, намерение maven-share-plugin состоит в том, чтобы объединить файлы jar вместе (их содержимое, ключевое слово: ueberjar).

0

Какой смысл добавлять ресурсы webapp в JAR? Это похоже на WAR.

Измените свой тип упаковки на war, и он будет работать.

+0

Возможно, вам следует отправить запрос на разъяснение в качестве комментария к исходному вопросу, а не как ответ на него. – Zero3

1

Вам необходимо поместить его в src/main/resources/webapp или указать соответствующее местоположение, чтобы оно было правильно поймано. Раздражает, но это работает.

Для тех, кто задает вопрос, почему это имеет смысл делать, это типичная установка для банки со встроенным веб-сервером, таким как Jetty.

+0

В соответствии с принятым и подтвержденным ответом от @Yanflea, неверно, что вы * нуждаетесь *, чтобы поместить файлы в папку 'src/main/resources /'. Вы в этом уверены? – Zero3

+0

Я отредактировал ответ, чтобы ответить на ваш комментарий. –

0

Я использую плагин ресурсов, чтобы переместить webapp в папку классов.

<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>3.0.2</version> 
    <executions> 
     <execution> 
      <id>copy-resources</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/target/classes/webapp</outputDirectory> 
       <resources> 
        <resource> 
         <directory>src/webapp/dist</directory> 
        </resource> 
       </resources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Таким образом, я могу поместить папку с моей веб-приложение в любом месте, определить каталог назначения и входит в мою затененной банку.

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