Мой тестовый код в Maven-проекте B (который является дочерним для проекта A) имеет что-то вроде
String filePath = "src/main/webapp";
//do something with the filePath
Приведенный выше тестовый пример работает нормально, когда я запускаю проект от дочернего (т. Е. Уровня B), но когда я запускаю из родительского проекта A (т. Е. Выполняю установку mvn на родительском уровне), это не удается, потому что, очевидно, нет папки с именем «src / main / webapp» на родительском уровне (однако он доступен на дочернем уровне).
Я знаю, что мог бы сделать некоторые проверки кода, если тестовый пример выполняется из родительского / дочернего модуля, но, очевидно, я хочу знать, что другие сделали, когда у них возникла эта проблема?
И нет, я не могу вместо этого использовать classpath (по разным скучным причинам).
Я также пробовал относительный путь, но затем тестовый пример начинает слишком много знать. Есть ли вообще решение для этого?
ОБНОВЛЕНИЕ (12 февраля) - У меня есть файл web.xml в папке webapp и я создаю в тестовом случае сервер Jetty, используя этот файл web.xml. В идеале src / main / webapp не помещается в путь к классам. Он используется плагином WAR для упаковки WAR. Теперь я попробовал альтернативный вариант, где я поместил свой файл web.xml в каталог src / main / resource / console-webapp / WEB-INF / web.xml и изменил атрибут webXml в плагине maven war. Кажется, это решает мою проблему. Однако в выходной WAR-файле у меня есть web.xml и другой избыточный web.xml (который был скопирован, потому что он находится в пути к классам).
Я попробовал "packageExclude" и "webResources / exclude" и получил военный плагин для пропуска второго web.xml, но все равно каталог "console-webapp" копируется (хотя и пуст). Есть ли способ сказать плагину maven war полностью игнорировать каталог (т. Е. Каков для этого шаблон муравья?)