Spring boot 如何使用Spring Boot将目录放在类路径的第一位?
我正在使用Maven构建我的Spring Boot应用程序,因此我可以从以下内容开始:Spring boot 如何使用Spring Boot将目录放在类路径的第一位?,spring-boot,Spring Boot,我正在使用Maven构建我的Spring Boot应用程序,因此我可以从以下内容开始: java -jar myjar-1.0-SNAPSHOT.jar --spring.profiles.active=prod 我希望在类路径上首先有一个目录,它允许我将一些文件放在文件系统上,而不必解压jar来更改它们 我尝试过使用loader.path,但似乎不起作用 java -Dloader.path="config/*" -jar myjar-1.0-SNAPSHOT.jar --spring.pr
java -jar myjar-1.0-SNAPSHOT.jar --spring.profiles.active=prod
我希望在类路径上首先有一个目录,它允许我将一些文件放在文件系统上,而不必解压jar来更改它们
我尝试过使用loader.path
,但似乎不起作用
java -Dloader.path="config/*" -jar myjar-1.0-SNAPSHOT.jar --spring.profiles.active=prod
config
dir是jar所在位置的子目录。我正在尝试加载一个密钥库文件,该文件在我的应用程序中作为资源注入。src/main/resources中有这样一个文件,但它只在我的IDE中起作用,在打包为jar时不起作用。因此,我想先在类路径上放置一个文件,以便在类路径上首先找到该文件。您可以使用loader.path
,但前提是主类
是PropertiesLauncher
(这取决于您如何构建JAR文件)。也许你需要在启动插件中用packaging=ZIP重新构建JAR(例如)?您不能将密钥库的路径设置为“文件:”URL吗?使用文件:
可以解决此问题,我可以将其用作解决方法。然而,在Maven插件中使用ZIP
,并不会将它放在类路径上,我真的希望它能正常工作。当我添加loader.path
时,我得到了NoClassDefFoundError:org/springframework/transaction/PlatformTransactionManager,这是因为您正在删除默认的loader.path。您需要“loader.path=lib/,config/”才能同时使用这两个选项。事实上,反过来说(假设您要求“config/”作为第一个选项)。啊!我认为loader.path
是在类路径上添加额外的东西。Spring Boot是否提供了一些方法来向类路径添加项,而不是像设置loader.path
时那样完全替换它?