У меня есть веб-приложение на Java, которое использует JNDI для определения своего «домашнего» каталога, в котором находятся различные файлы конфигурации и ведение журналов. Во время сборки Maven мы устанавливаем местоположение домашнего каталога в свойстве, которое находится в файле settings.xml. Это свойство, в свою очередь, помещается в файл JNDI Jetty / Tomcat во время сборки с помощью фильтрации ресурсов Maven. Все отлично работает.
Однако для этой настройки требуется, чтобы за один раз на одной машине могла происходить только одна сборка Maven, что вскоре станет проблемой для нашего сервера Hudson CI. Также требуется, чтобы пользователи создавали этот каталог перед сборкой, что помогает нарушить переносимость сборки. В идеале я мог бы использовать «целевой» каталог родительского проекта POM в качестве «домашнего» каталога, определив переменную в родительском POM:
<webapp-home>${project.basedir}/target<webapp-home>
Но это не работает, потому что каждый модуль Maven переопределяет webapp-home
на что-то другое. Понятия не имею почему. Если бы я мог решить эту проблему, я был бы готов.
В противном случае, что я могу использовать в качестве хорошего временного «домашнего» или «рабочего» каталога, который уникален для сборки и является постоянным для всех модулей Maven в сборке? И бонусный вопрос: могу ли я попросить Maven создать каталог для меня, если он не существует?