我刚刚开始使用玉兰花,一开始我惊讶于每次.war部署到tomcat之后需要安装Magnolia。我在项目中进行了一些更改,并使用mvn tomcat7:deploy/redeploy
进行部署。 Tomcat会自动识别ROOT.war
已更改,因此会自动解压缩,之后当我输入localhost:8080
时,它希望我再次安装Magnolia模块。在我的项目和部署中的每次更改后,是否真的有必要反复安装所有模块?也许我在项目中进行更改并部署它的方式是错误的?如果我没有以这种方式弄错我的内容更改也会被覆盖/删除?
答案 0 :(得分:3)
有关详细信息,请查看documentation有关如何配置Magnolia的信息,但实际上,如果您打开/WEB-INF/config/default/magnolia.properties
并将magnolia.home=
更改为指向您的webapp外部目录就足够了。默认情况下,它设置为war文件内部,因此您可以轻松擦除并重新安装Magnolia。在您的情况下,您希望您的数据是永久性的,因此您可以将其设置出来。您仍然应该阅读Daniele关于如何设置devenv的文章,您可能仍然希望为生产用途配置不同于derby的数据库,但是您也应该将所有数据保留在webapp之外。
HTH,
扬
答案 1 :(得分:2)
每次都必须重新安装Magnolia,因为我认为每次部署新版本时都会删除存储库(数据库)。
您可能正在将数据保存在webapps内的文件夹中,并且每次部署新的.war时都会将其删除。
如果要在部署之间保留网站和模块,我需要将存储库位置更改为文件系统中的其他文件夹,或者设置数据库连接。
您可以通过修改repositories.xml文件或添加自定义jackrabbit配置文件来完成此操作,在此article中您会找到许多有用的信息,我建议您查看段落'自定义Jackrabbit配置文件