Spring 启动 war 打包:使用额外的类路径执行
Spring Boot war packaging: Execution with additional classpath
我想将我的 Spring 引导应用程序打包为 war 包,以便
- 在现有 tomcat
上部署
- 运行 与
java -jar application.war
独立
与神器相同。为此,我将 spring-boot-starter-tomcat
的范围设置为 provided
,因此这些依赖项位于文件夹 lib-provided
.
中
我不想在工件中包含数据库驱动程序。当 运行 在现有 tomcat 上时,我只是将数据库驱动程序(作为 jar)添加到它的 lib 文件夹中。
现在我的问题是:如何将额外的类路径(例如 lib/*
)添加到 java -jar application.war
命令?传统方法(如 java -cp lib/* -jar application.war
)不起作用。
发现 Spring Boot 使用 WarLauncher 来 运行 可执行 war 文件。所以
java -cp drivers/*:application.war org.springframework.boot.loader.WarLauncher
是一个有效的命令行命令,可以在不修改或解压缩 war 文件的情况下将其他 jar 文件添加到类路径。
我想将我的 Spring 引导应用程序打包为 war 包,以便
- 在现有 tomcat 上部署
- 运行 与
java -jar application.war
独立
与神器相同。为此,我将 spring-boot-starter-tomcat
的范围设置为 provided
,因此这些依赖项位于文件夹 lib-provided
.
我不想在工件中包含数据库驱动程序。当 运行 在现有 tomcat 上时,我只是将数据库驱动程序(作为 jar)添加到它的 lib 文件夹中。
现在我的问题是:如何将额外的类路径(例如 lib/*
)添加到 java -jar application.war
命令?传统方法(如 java -cp lib/* -jar application.war
)不起作用。
发现 Spring Boot 使用 WarLauncher 来 运行 可执行 war 文件。所以
java -cp drivers/*:application.war org.springframework.boot.loader.WarLauncher
是一个有效的命令行命令,可以在不修改或解压缩 war 文件的情况下将其他 jar 文件添加到类路径。