5.1. 应用程序主目录
应用程序主目录是一个文件系统目录,CUBA 应用程序在这里保存临时文件,也可以放置local.app.properties和logback.xml这样的配置文件。下面提到的大多数应用程序文件夹都放在应用程序主目录中。文件存储默认也是用了应用程序主目录下的一个子目录。
由于 CUBA 应用程序会在主目录创建多种文件(临时文件、日志文件等),所以运行应用程序的用户对这个目录需要有写权限。
框架从 app.home
java 系统属性获取应用程序主目录路径。
推荐在启动应用程序服务时,使用命令行参数 |
- 显式的设置应用程序主目录
当运行 UberJAR 时,指定 -D
命令行参数,示例:
java -Dapp.home=/opt/app_home -jar app.jar
当使用 WAR 部署时,在启动脚本的合适位置用 -D
命令行参数设置 app.home
,或者用应用程序服务器的其他推荐方法设置。比如,在 Tomcat 中,在 bin/setenv.sh
内添加下面内容:
CATALINA_OPTS="-Dapp.home=\"$CATALINA_BASE/work/app_home\" -Xmx512m -Dfile.encoding=UTF-8"
如果您使用部署至 Tomcat Windows 服务,需要将每个属性在 Tomcat 服务设置窗口的 Java Options 字段单独配置一行。
- 应用程序主目录自动检测
如果命令行参数 app.home
未提供,则根据下面规则自动设置:
-
如果应用程序是以 UberJAR 的方式启动,当前工作目录作为应用程序主目录。
-
如果
catalina.base
系统参数已设置(即应用程序运行在 Tomcat 中),应用程序主目录设置为${catalina.base}/work/app_home
。 -
其他情况,应用程序主目录设置为用户根目录的
.app_home
文件夹。
选项 2 和 3 有这个缺点:Logback 初始化的过程会在 |
在开发过程中使用 快速部署 时,从 7.2 版本开始,应用程序主目录会设置为项目目录下的 deploy/app_home
目录。如果项目是基于平台旧版本的话,应用程序目录会是在 Tomcat 的 conf
和 work
目录。