5.1. 应用程序主目录
应用程序主目录即是所有应用程序目录的根目录。通常在 WAR 或者 UberJAR 包中的 /WEB-INF/local.app.properties
文件指定。
-
如果构建一个 WAR 包,必须在 buildWar Gradle 任务中定义应用程序主目录的路径。可以设置为绝对路径或者相对路径,如果是相对路径的话,需要提前知道 WAR 将会被部署在服务器的哪个工作目录。如果不知道的话,可以用 Java 系统变量的占位符,然后在运行时提供真实路径。
在运行时设置应用程序主目录的示例:
-
任务配置:
task buildWar(type: CubaWarBuilding) { appHome = '${app.home}' // ... }
-
构建了 WAR 之后
/WEB-INF/local.app.properties
文件的内容:cuba.logDir = ${app.home}/logs cuba.confDir = ${app.home}/${cuba.webContextName}/conf cuba.tempDir = ${app.home}/${cuba.webContextName}/temp cuba.dataDir = ${app.home}/${cuba.webContextName}/work ...
-
命令行传递
app.home
系统参数:java -Dapp.home=/opt/app_home ...
设置 Java 系统参数的方式取决于应用程序服务。对于 Tomcat,推荐设置在
bin/setenv.sh
(或者bin/setenv.bat
)文件内。 -
生成的目录结构:
/opt/app_home/ app/ conf/ temp/ work/ app-core/ conf/ temp/ work/ logs/
-
-
对于 UberJAR 的情况,应用程序主目录默认设置为工作目录,但是也可以通过 Java 系统参数
app.home
来重定义。所以如果需要跟上面提到的 WAR 的例子一样设定同样的主目录,可以通过命令行执行:java -Dapp.home=/opt/app_home -jar app.jar