构建可执行JAR文件
将Spring应用程序构建成可执行的JAR文件是相当简单的。假设我们在初始化项目时选择了打包成JAR,那么可以通过如下的Maven命令生成一个可执行的JAR文件:
$ mvnw package
构建成功后,生成的JAR文件会被放入target目录,它的名称和版本会基于项目pom.xml文件中的<artifactId>和<version>条目确定,如tacocloud-0.0.19-SNAPSHOT.jar。
如果我们使用的是Gradle,那么需要执行如下的命令:
$ gradlew build
对于Gradle构建,所产生的JAR将放置在build/libs目录中。JAR文件的名称会基于settings.gradle文件中的rootProject.name属性和build.gradle中的版本属性确定。
有了可执行的JAR文件之后,就可以像这样用java -jar命令运行它:
$ java -jar tacocloud-0.0.19-SNAPSHOT.jar
这样一来,该应用程序就会运行。如果它是一个Web应用程序,将启动一个嵌入式服务器(Netty或Tomcat,取决于该项目是否为一个反应式Web项目)并开始监听配置的server.port端口(默认为8080)上的请求。
对于本地运行的应用,这样做是很好的。但我们该如何部署一个可执行的JAR文件呢?
实际上,这取决于我们要将应用部署在什么地方。如果我们要将其部署到 Cloud Foundry云平台,可以使用 cf 命令行工具来推送 JAR 文件,如下所示:
$ cf push tacocloud -p target/tacocloud-0.0.19-SNAPSHOT.jar
cf push后的第一个参数指定了在Cloud Foundry中该应用的名称。此名称用于在Cloud Foundry 和 cf CLI 中引用该应用程序,并用作应用托管的子域。例如,如果在 Cloud Foundry上,我们的应用域是 cf.myorg.com,那么 Taco Cloud 应用会在 https://tacocloud.cf.myorg.com 上提供服务。
部署可执行JAR文件的另一种方法是将其打包到Docker容器中,并在Docker或Kubernetes中运行。接下来让我们看看如何做到这一点。