【发布时间】:2016-06-25 15:02:55
【问题描述】:
我有一个嵌入式 Tomcat 应用程序打包为一个可执行(瘦)jar 与多个外部 jar 依赖项。
构建过程会生成一个META-INF/MANIFEST.MF,其中包含标题字段Main-Class 和Class-Path(每个运行时依赖项都有一个条目)。
我想使用简单的java -jar my_app.jar 执行应用程序,但我无法让 Tomcat 扫描这些依赖的 jars(为了发现 TLD 或 @HandlesTypes 类,如 Spring WebApplicationInitializer )。
我是这样配置jar扫描的:
StandardJarScanner jarScanner = (StandardJarScanner) ctx.getJarScanner();
jarScanner.setScanBootstrapClassPath(true);
jarScanner.setScanClassPath(true);
所有的 jars 都有一个 META-INF 文件夹,但扫描仪完全忽略了它们。
有什么想法吗?
注意:我可以使用不同的方法(fat jar,从 maven 运行,...)来完成这项工作,但我有兴趣让它像任何其他 java 应用程序一样以这种方式工作。
【问题讨论】:
标签: java spring-boot servlet-3.0 embedded-tomcat-8