Heroku和Leiningen:我的文件在哪里?

时间:2014-10-21 16:02:38

标签: heroku github clojure leiningen

我有一个Leiningen项目依赖于另一个Leiningen项目。两者都在Github上。我将我依赖的项目克隆到checkouts文件夹作为Git子模块,它在我的开发环境中运行良好。我可以使用依赖项中的类,甚至不必将其作为依赖项添加到projects.clj中(尽管documentation表示"如果你有一个项目在结帐时没有把它放入:依赖关系然后它的源将是可见的,但它的依赖关系将无法找到")。

主要问题是当我将项目推送到Heroku时,子模块会自动克隆,但checkouts下没有/app目录。我猜Heroku由于某种原因忽略了checkouts

据推测,我这样做是错误的,并且我有正确的方式与两个Git回购并行工作,其中一个依赖于另一个。对我来说,主要问题是我需要能够轻松地将我的应用程序部署到Heroku。处理这种情况的标准方法是什么?

更新:我还注意到我的circle.yml文件位于repo中,不在/app目录中。我对/app目录中 的确切内容以及其他内容消失的地方感到很困惑。

1 个答案:

答案 0 :(得分:1)

问题是heroku运行lein with-profile production compile :all,忽略了checkout依赖关系(参见https://github.com/technomancy/leiningen/issues/1263)。

可能的解决方案是将:checkout-deps-shares [:source-paths]添加到您的生产个人资料中。不鼓励(根据heroku工程师的说法,你真的应该在生产中使用uberjar)但它应该可以解决问题。