Преобразовать существующую файловую структуру веб-приложения в файловую структуру maven?

У меня есть существующее веб-приложение, которое создает файл .war. Я хочу преобразовать структуру каталогов в соглашения maven. И я немного потерян.

В частности, текущий .war, созданный целью ant, не копирует в .war ничего из поддерева каталога site/statics; это копируется другой, другой целью муравья.

Но если я хочу запустить, например, причал из maven (и я это делаю!), мне нужно скопировать site/statics/**/. куда-нибудь в каталог target maven. Я не знаю, как это сделать, учитывая соглашения maven.

Спасибо.

Вот существующая структура каталогов в виде (извините) скриншота из Eclipse:


person tpdi    schedule 23.11.2010    source источник
comment
что такого особенного в папке site/statics? Я предполагаю, что site/jsp находится на корневом уровне вашего файла WAR (содержащего JSP). Вы говорите, что файлы на сайте/статике поступают откуда-то извне и помещаются в структуру каталогов выше другой целью муравья? Кроме того, я вижу, у вас есть папка ear (для создания файла ear для развертывания на сервере JEE?) и папка модуля (создание EJB JAR?)   -  person ddewaele    schedule 03.12.2010


Ответы (1)


Вам лучше следовать структуре каталогов maven по умолчанию, или, если вы настаиваете на использовании своей собственной, вам необходимо настроить файл maven .pom соответственно.

здесь объясняется структура каталогов плагинов Maven war по умолчанию и ее использование здесь.

По умолчанию ${basedir}/src/main/webapp — это то место, куда вы должны поместить файлы jsp и другие статические или динамические файлы, которые должны находиться в корневом каталоге war. Чтобы изменить эту структуру по умолчанию, вам нужно добавить некоторую конфигурацию в файл pom. Ознакомьтесь с различными вариантами, доступными на этой странице и на этой странице пример используя их.

Вместо того, чтобы копировать внешний статический файл с помощью скрипта, вы можете использовать следующие настройки в вашем pom:

<plugins>
  ...
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <webResources>
        <resource>
          <directory>/absolute/path/to/external/static/</directory>
        </resource>
      </webResources>
    </configuration>
  </plugin>
  ...
</plugins>

Каталог может быть путем относительно вас pom или абсолютным путем (что делает вас pom непереносимым) или может быть параметризован с использованием ${xxx}

person Ali Shakiba    schedule 04.12.2010