我有一个Leiningen项目依赖于另一个Leiningen项目。两者都在Github上。我将我依赖的项目克隆到checkouts
文件夹作为Git子模块,它在我的开发环境中运行良好。我可以使用依赖项中的类,甚至不必将其作为依赖项添加到projects.clj
中(尽管documentation表示"如果你有一个项目在结帐时没有把它放入:依赖关系然后它的源将是可见的,但它的依赖关系将无法找到")。
主要问题是当我将项目推送到Heroku时,子模块会自动克隆,但checkouts
下没有/app
目录。我猜Heroku由于某种原因忽略了checkouts
。
据推测,我这样做是错误的,并且我有正确的方式与两个Git回购并行工作,其中一个依赖于另一个。对我来说,主要问题是我需要能够轻松地将我的应用程序部署到Heroku。处理这种情况的标准方法是什么?
更新:我还注意到我的circle.yml
文件位于repo中,不在/app
目录中。我对/app
目录中 的确切内容以及其他内容消失的地方感到很困惑。
答案 0 :(得分:1)
问题是heroku运行lein with-profile production compile :all
,忽略了checkout依赖关系(参见https://github.com/technomancy/leiningen/issues/1263)。
可能的解决方案是将:checkout-deps-shares [:source-paths]
添加到您的生产个人资料中。不鼓励(根据heroku工程师的说法,你真的应该在生产中使用uberjar)但它应该可以解决问题。