如何将文件夹及其内容添加到Playframework和Heroku的标准路径?

问题描述 投票:-1回答:1

我有一个部署在Heroku中的Scala Play框架2.7.x应用程序。我使用Lucene为WebApp编制索引,由于Lucene中没有JdbcDirectory,因此我需要使用其FSDirectory,这导致Heroku出现问题,因为我无法在Heroku中的$APP_HOME/lucene-index/*下生成索引文件。每次都会被清除。这使我有两种可能的解决方案,而这是一种更简单的解决方案:

  1. 在部署之前在本地生成$APP_HOME/lucene-index并将其保存在GIT中,此文件夹将与$APP_HOME/app$APP_HOME/public处于同一级别。
  2. 集成新的非标准播放文件夹$APP_HOME/lucene-index,以便由Heroku复制(此OP的目的。)>]
  3. 启动时,应用程序检查此文件夹,如果不存在(本地大小写),则生成该文件夹,否则将其打开(Heroku大小写。)>
  4. 我需要在#2上做一些特别的事情,以使Heroku识别$APP_HOME/lucene-index/为需要与应用程序打包在一起的文件夹吗?例如我不想将$APP_HOME/lucene-index/放在$APP_HOME/conf/下,以使其正常工作。

    这里找到Anatomy of a Play 2.7.x application,但是没有关于如何向其添加额外路径文件夹的消息。

我有一个部署在Heroku中的Scala Play框架2.7.x应用程序。我使用Lucene为WebApp编制索引,并且由于Lucene中没有JdbcDirectory,因此我需要使用其FSDirectory来代替...

scala heroku playframework lucene
1个回答
0
投票

我追求的解决方案是将./lucene-index文件夹作为Play dist的一部分。这是通过更改build.sbt文件的添加来完成的:

//********************************************************
// Add lucene-index to the dist
//********************************************************

import com.typesafe.sbt.packager.MappingsHelper._
mappings in Universal ++= directory(baseDirectory.value / "lucene-index")
© www.soinside.com 2019 - 2024. All rights reserved.