繁体   English   中英

将多个 maven 项目部署到 heroku

[英]Deploying multiple maven projects to heroku

我有多个 Maven 项目,如下面的结构所示​​。

    .git

    folder a -> contains main class and with jetty server.

    | 
      main class
    |
      pom.xml

    folder b
    |
     other implementation classes of interface present in folder c
    |
     pom.xml

    folder c
    | 
      Models(Pojo)
    |
      Controller(Rest Controller)
    |
      pom.xml

以上 3 个文件夹添加到类路径中,在本地环境中完美运行。 但是,当我尝试在 heroku 服务器中托管它时,由于以下原因,构建失败。

无法检测到此应用的默认语言。 远程:提示:当 Heroku 无法自动检测到用于此应用程序的 buildpack 时,会发生这种情况。 远程:参见https://devcenter.heroku.com/articles/buildpacks

我的 pom.xml 在子文件夹中,主类在文件夹 a 中。

我可以在根文件夹中再添加一个 pom.xml 并将其指向 foldera 的 pom.xml 吗? 或者我如何使用可执行 jar 来托管它?

请帮忙?

您需要在根目录下有一个pom.xml ,然后将其配置为将子目录作为模块。 它看起来像这样:

<modules>
  <module>folder-a</module>
  <module>folder-b</module>
  <module>folder-c</module>
</modules>

您可能还需要在子模块中配置父 pom.xml。 有关更多信息,请参阅Maven 模块文档

然后这取决于您是要构建所有这些子模块还是仅构建一个。 如果您想全部构建它们,请使用指向folder-a/target/myapp.jar Procfile folder-a/target/myapp.jar或其他任何内容的java命令将Procfile添加到根目录。

如果您只想运行一个子模块,您仍然需要Procfile ,但您还需要通过运行以下命令将-pl选项添加到 Maven:

$ heroku config:set MAVEN_CUSTOM_OPTS="-pl folder-a"

然后下次部署时,Heroku 将运行 maven,以便仅构建folder-a的模块。

此错误消息意味着 Heroku 无法自动检测您尝试部署的应用程序类型:Ruby、Node、Python、PHP、Java 等。它会查找支持的每种语言的签名(例如 pom.xml 文件或 package.json 文件)。 这通常意味着一个重要的 package.json 文件没有被检入你的 git 存储库:

你应该 git add {file}, git commit -am ' added {file}' 然后 git push heroku master

更多信息:参考: https : //help.heroku.com/1MC2J0GF/why-does-my-app-fail-to-detect-a-buildpack

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM