2017-04-23 61 views
0

假设我制作java spring引导应用程序时,它需要jar。用于弹簧启动的云代工厂依赖性罐子

但是当我部署我的应用程序到Cloud Foundry将所有的罐子得到建立与我的应用程序,然后进入到Cloud Foundry或云代工通过观察POM等 我所看到的build文件夹提供了罐子的依赖,但罐子没有,所以它是如何工作的。 我是新的云代工厂,所以如果有人可以清除我的疑问。

回答

2

对于大多数应用程序类型和构建包,当您将应用程序推送到Cloud Foundry时,您需要推送源代码,并且必要时可以在构建包的暂存过程中编译源代码。例如,使用Golang构建包,您可以推送Go源代码,并在分段中编译然后运行。

此规则的两个例外是Java构建包和二进制构建包。这两个构建包假设你正在编译位,并且不为你编译任何东西。

就Java而言,这意味着您要在本地或您的CI系统上运行Maven,Gradle或其他一些构建系统来生成可部署的工件。这可以是WAR文件或JAR文件或其他一些东西(有关其他支持的格式,请参阅Java build pack docs上的“标准容器”)。不管格式如何,它都需要是一个完整的可部署单元,因此需要包含所有相关的库。

作为一个方面说明,cf cli有一个很好的功能,有助于加快cf push进程并节省带宽。它将任何正在上传的文件与超过65k大小的文件(默认,操作员可以更改此内容)匹配到云控制器上缓存的文件。如果本地文件已存在于缓存中,则不会再次上载。这适用于依赖JAR文件,这些文件在推送之间不会经常变化。

+0

非常感谢丹尼尔的努力和共享的知识。 – pradeep

1

Spring Boot应用程序通常使用Spring Boot maven或gradle插件打包为“胖罐”。应用程序代码和所有相关的jar包被打包到一个jar文件中。

当部署Java应用程序时,Cloud Foundry不会下载相关的jar。应用程序的责任是将所有依赖关系与它联系起来。

+0

非常感谢斯科特 - 很好,清脆,清晰 – pradeep