maven webapp для размещения jsps в /WEB-INF/jsp

я унаследовал веб-приложение, построенное с использованием внутреннего муравья NetBean.

все jsps находятся в:

WEB-INF/jsp

и в интернете.xml имеет жестко закодированные ссылки на /WEB-INF/jsp/somefile.jsp

Как я могу использовать плагин Maven war для размещения JSP там, поддерживая согласованность с текущей структурой ?

мой pom в настоящее время читает:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>

2 ответов


В чем проблема? Давайте посмотрим на стандартную структуру военного проекта:

$ mvn archetype:create -DgroupId=com.mycompany.app \
> -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
...
$ tree my-webapp/
my-webapp/
|-- pom.xml
`-- src
    `-- main
        |-- resources
        `-- webapp
            |-- WEB-INF
            |   `-- web.xml
            `-- index.jsp

5 directories, 3 files 

не нужно ничего настраивать, просто поместите JSPs под src/main/webapp/WEB-INF/jsp и там вы идете.

EDIT: Я не понимаю, почему у вас есть следующая строка в конфигурации Maven-war-plugin:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>

каково ожидаемое поведение? Почему бы вам не использовать значение по умолчанию ${basedir}/src/main/webapp?


также обратите внимание, что все в src/main/resources будет "на пути к классам", т. е. все это копируется в my-webapp/WEB-INF/classes при построении войны. Так что это хорошее место для размещения ваших файлов конфигурации, например, log4j.xml / logback.xml, или Spring applicationContext.xml и другие файлы конфигурации Spring, которые вы можете легко ссылаться на classpath: somefile.XML.

что также делает это очень приятным, вы можете настроить фильтры в maven, чтобы он преобразовывал файлы из src / resources, прежде чем он помещает их в файл войны.

Итак, если у вас есть какие-либо файлы конфигурации, кроме web.xml, в src/main/webapp/WEB-INF, подумайте о перемещении их в каталог src/main/resources.