附录E.4. PropertiesLauncher特性
最后更新于
最后更新于
PropertiesLauncher有一些特殊的性质,它们可以通过外部属性来启用(系统属性、环境变量、manifest实体或application.properties)。下面的表格描述了这些属性:
当指定为环境变量或清单条目时,应使用以下名称:
注 构建插件在胖子jar构建时,会自动将Main-Class
属性移动到Start-Class
。如果使用这个,请指定要启动的类的名称,使用Main-Class
属性而省略Start-Class
。
以下规则适用于使用PropertiesLauncher
工作:
loader.properties
在loader.home
中搜索,然后在类路径的根目录中搜索,然后在classpath:/BOOT-INF/classes
中搜索。首先使用的是存在该名称的文件的第一个位置。
loader.home
是一个额外的属性文件的目录位置(覆盖了默认值),只有在没有指定loader.config.location
时才会使用。
loader.path
可以包含目录(递归地扫描jar和zip文件)、归档路径、归档中的目录(例如,dependencies.jar!/lib
)或通配符模式(用于默认的JVM行为)。存档路径可以是相对于loader.home
或文件系统中任何带有jar:file:
前缀的地方。
loader.path
(如果为空) 默认为BOOT-INF/lib
(意思是本地目录,如果从归档中运行,则为嵌套目录)。因此,当没有提供额外的配置时,PropertiesLauncher
的行为与JarLauncher
相同。
loader.path
不能用来配置loader.properties
的位置(当启动PropertiesLauncher
时,用于搜索后者的类路径是JVM的类路径)。
在使用前,从System和环境变量加上properties文件本身的所有值上进行占位符替换。
对属性的搜索顺序(在不止一个地方查找是有意义的)是环境变量、系统属性、loader.properties
和档案清单。
键
作用
loader.path
逗号分隔的classpath,比如lib,${HOME}/app/lib
。前面的条目优先,就像javac
命令行中的常规-classpath
一样。
loader.home
用于解析loader.path
中的相对路径。例如,给定loader.path=lib
,那么${loader.home}/lib
是一个类路径位置(以及该目录中的所有 jar文件)。这个属性也用于定位loader.properties
文件,就像下面的例子/opt/app
,它的默认值是${user.dir}
。
loader.args
main方法的默认参数(以空格分隔)
loader.main
要启动的main类名称,比如com.app.Application
loader.config.name
属性文件名,比如loader(默认为application)
loader.config.location
属性文件路径,比如classpath:loader.properties
(默认为application.properties)
loader.system
布尔标识,表明所有的属性都应该添加到系统属性中(默认为false)
键
清单条目
环境变量
loader.path
Loader-Path
LOADER_PATH
loader.home
Loader-Home
LOADER_HOME
loader.args
Loader-Args
LOADER_ARGS
loader.main
Start-Class
LOADER_MAIN
loader.config.location
Loader-Config-Location
LOADER_CONFIG_LOCATION
loader.system
Loader-System
LOADER_SYSTEM