2017-12-18 320 views
0

我有两个模块的多模块maven项目。每个模块都是一个弹簧休息服务(@RestController)。我已经成功运行localhost上的服务,现在我想远程访问我的应用程序,所以我需要将模块发布到某个远程服务器。在Heroku上部署多模块java应用程序

我发现使用Heroku是很好的开始。我阅读了一些教程,但并没有完全理解一件事情:我可以在一个Heroku应用程序中部署多个服务(如果是的话,我需要如何配置我的Procfile),或者我必须为我的应用程序的每个模块创建一个Heroku应用程序?或者可能有任何方法将多个模块打包到一个war/ear文件并将其用于部署?

以防万一,还有就是我的顶层POM

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.nverapp</groupId> 
<artifactId>nverapp</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 

<modules> 
    <module>server</module> 
    <module>auth_server</module> 
</modules> 

UPD

所以,我发现这个例子https://github.com/seeebiii/multi-module-heroku,但我不undrestand如何应用服务器作为分离服务处理起始模糊ChildTwo。有人可以解释这一刻吗?

回答

0

您将需要创建两个应用程序,因为Heroku每个应用程序只允许一个Web进程类型。

您还需要使您的Procfile具有足够的灵活性,才能使用这两个模块。要做到这一点,我建议在配置无功把JAR文件名,如:

web: java -jar $JAR_FILE 

您也可以使用MAVEN_CUSTOM_OPTS配置VAR每个应用程序的-pl选项设置只需要构建什么。