CloudBees是一个云平台,为您的应用程序提供存储库,CI服务(Jenkins)和服务器。 因此,您需要开发,测试和部署所有内容。 有很多选项,例如存储库可以是Git或SVN,对于服务器,您可以选择Jetty,Tomcat,Glassfish,JBoss,Wildfly等。还可以运行带有端口号的独立应用程序,因此您可以启动自己的服务器。 在这种情况下,我们将在这里介绍。
spray.io是适用于Web应用程序的Scala框架。 它允许您创建独立的Web应用程序(启动它们自己的服务器,使用Spray-can)或稍微受限制的.war的Web应用程序(spray-servlet),您可以将其部署在Glassfish,JBoss等JEE服务器上。我们将使用独立的这里。
您可以从github克隆应用程序。 现在让我们快速浏览一下。
该应用程序
开机
Boot
文件是Scala App
,因此它类似于具有main方法的java类。 它是可运行的。 它创建Service
角色,该角色正在处理所有HTTP请求。 它还从app.port
系统属性读取端口号, app.port
服务绑定到主机和端口。 app.port
由CloudBees提供,如果要在本地运行该应用程序,则需要通过jvm命令行-Dapp.port=8080
。
服务
Service
具有MyService
特性,该特性仅处理到空路径的路由。 是的,该应用程序不是很复杂!
建档
build.gradle
文件更有趣。 让我们从头开始。
-
mainClassName
属性设置为Scala App。 当您通过gradlew run
从命令行在本地运行该类时,将要运行该类。 -
applicationDefaultJvmArgs
设置为-Dapp.port=8080
,这也是从gradle本地运行的必要条件。 这样,我们设置了要绑定Service
端口。 -
jar.archiveName
是用于设置生成的.jar名称的设置。 没有它,则取决于项目目录名称。
您可以通过发出gradlew run
(确保gradlew
文件是可执行文件)来运行应用程序。 当它运行时,您可以将浏览器指向http:// localhost:8080,然后应该看到“向喷雾罐上的喷雾路由问好!” 没什么,对不起。
也有“ cb”任务定义为gradle。 如果发出gradlew cb
,它将构建zip文件,其所有依赖项.jars和szjug-sprayapp-1.0.jar
位于其根目录中。 对于CloudBees独立应用程序,此布局是必需的。
部署到CloudBees
首先,您需要在