Какова основная структура каталога dist, который превращается в файл .war для Tomcat? - PullRequest
0 голосов
/ 06 апреля 2011

Каков идеальный способ создания структуры каталогов при подготовке каталога dist для преобразования в файл .war?

1 Ответ

2 голосов
/ 06 апреля 2011

В более сложных проектах мне известно, что в исходном коде есть каталог webapp:

my-webapp/
my-webapp/WEB-INF/
my-webapp/WEB-INF/web.xml
my-webapp/WEB-INF/lib/
my-webapp/WEB-INF/classes/
my-webapp/WEB-INF/jsp/my.jsp
my-webapp/WEB-INF/tld/my.tld

Затем, используя Ant , я создаю временный промежуточный каталог ииспользуйте его, чтобы построить войну:

<mkdir dir="${staging.dir}"/>
<copy todir="${staging.dir}">
  <fileset dir="${src.dir}/my-webapp" includes="**/*"/>
</copy>

<war destfile="my-webapp.war" webxml="${staging.dir}/WEB-INF/web.xml">
  <fileset dir="${staging.dir}" includes="**/*"/>
  <classes dir="${build.dir}"/>
  <lib dir="${lib.dir}"/>
</war>

Однако, если ваш проект проще (без JSP, ресурсов и т. д.), вы можете просто уйти без определенного каталога webapp в вашем источнике.Вы можете просто разместить файл web.xml в соответствующем дереве исходного кода, указать на него задачу <war> и указать соответствующие каталоги class / lib.

Что касается ваших пояснений в комментариях, Tomcat (и большинство контейнеров) ожидает структуру, подобную следующей:

my-webapp/WEB-INF/
my-webapp/WEB-INF/lib/     (for jar files)
my-webapp/WEB-INF/classes/ (for class files)
my-webapp/WEB-INF/web.xml  (deployment descriptor)

Документация Tomcat раздел по развертыванию У есть довольно хорошее объяснение этого материала.

Примечательно: все, что вы поместите в WEB-INF, не будет доступно напрямую (например, через URL).Пример:

  • Если вы поместите файлы JSP в my-webapp/jsp, вы сможете получить к ним доступ напрямую, например, http://example.com/my-webapp/my.jsp
  • Если вы поместите файлы JSP в my-webapp/WEB-INF/jsp, вы не сможете получить к ним доступ по URL-адресу в предыдущем пункте.Вам нужно будет предоставить способ получить к ним доступ, например, перенаправив их из сервлета.

Я предпочитаю, чтобы мои файлы JSP были в WEB-INF, так как я отношусь к ним как кпредставления в структуре MVC и мои контроллеры (сервлеты) определяют, как к ним обращаться и как они отображаются.

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