У меня есть встроенное приложение Tomcat, упакованное как исполняемый (тонкий) jar
с несколькими внешними jar
зависимостями.
Процесс сборки генерирует META-INF/MANIFEST.MF
с полями заголовка Main-Class
и Class-Path
(с записью для каждой зависимости времени выполнения).
Я хочу выполнить приложение, используя простой java -jar my_app.jar
, но я не могу заставить Tomcat сканировать эти зависимые файлы jar (чтобы обнаружить TLD или @HandlesTypes
классы, такие как Spring WebApplicationInitializer
).
Я настраиваю сканирование jar следующим образом:
StandardJarScanner jarScanner = (StandardJarScanner) ctx.getJarScanner();
jarScanner.setScanBootstrapClassPath(true);
jarScanner.setScanClassPath(true);
И у всех банок есть папка META-INF
, но сканер их полностью игнорирует.
Любые идеи?
Примечание. Я могу сделать эту работу, используя разные подходы (толстая банка, запуск из maven,...), но я заинтересован в том, чтобы она работала таким образом, как и любое другое java-приложение.