Оптимальный результат будет иметь один файл войны, который будет работать как на Tomcat 5, так и на Tomcat 7 и будет одинаковым для каждого клиента.
Вы можете использовать профили maven, чтобы принять сборку для каждого клиента, но я рекомендую экпортировать отдельный конфиг в JNDI или файл внешних свойств, считываемый через некоторую переменную среды. Spring предлагает PropertyResolverconfigurer сделать это (например)
Поскольку вы хотите поддержать Tomcat 5, я предполагаю, что ваш проект построен с использованием Java 1.5? Это должно работать и на Tomcat 7.
В зависимостях javax должна быть предоставлена область в ваших файлах pom.xml. Поэтому они не будут развернуты. Если вашему приложению требуется определенная версия банки, которая является частью tomcat, вы также сможете решить эту проблему с помощью профилей. Но это может противоречить профилям для каждого клиента.
Если есть большие различия между версией Tomcat 5 и Tomcat 7, может возникнуть идея создать 3 модуля - все с использованием упаковки «война». Один, содержащий «нейтральные» файлы, один из которых содержит файлы tomcat 5 и один файл tomcat 7. Проекты tomcat будут использовать нейтральный модуль в качестве зависимости от файла войны, а maven - оверлей войны. Таким образом, одна сборка будет выпускать как версию tomcat 5, так и версию tomcat 7 (и файл нейтральной войны, который не используется для развертывания).
согласно http://tomcat.apache.org/whichversion.html минимальная версия java от tomcat 5 - java 1.4. Но это связано с тем, что работает tomcat. Tomcat 7 должен также работать с байт-кодом Java 1.5. Только его JDK составляет 1,6. Вы можете использовать 1.5 для исходной и целевой версии плагина maven-compiler для целевой версии.
Но я думаю, что должно быть возможно создать сборку tomcat 5, которая также будет работать на tomcat 7. У вас есть зависимости, которые конфликтуют между двумя версиями? или вы предварительно скомпилируете jsp-файлы?
Для сборки maven вам понадобится только один jdk (1.6), чтобы иметь возможность собирать источники для старой целевой версии.
Я хочу запустить под TC7 на моей машине Dev, потому что у Netbeans есть некоторые действительно приятные функции для отладки под TC7. Однако моя версия релиза должна быть совместима с TC5 и строить с использованием JDK5, потому что большинство ошибок будет отображаться во время сборки. Для меня это означает, что и JDK, и JAVAX libs должны меняться от одной сборки к другой, и я не вижу никакого способа заставить Maven сделать это. – OldCurmudgeon