我有多个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服务器中时,构建的bcoz失败 以下原因。
此应用无法检测到默认语言。 remote:提示:当Heroku无法自动检测到要用于该应用程序的buildpack时,就会发生这种情况。 远程:请参见https://devcenter.heroku.com/articles/buildpacks
我的pom.xml位于子文件夹中,而主类位于文件夹a中。
我可以在根文件夹中再添加一个pom.xml并将其指向foldera的pom.xml吗? 或者我如何使用可执行jar托管它?
请帮助?
答案 0 :(得分:0)
您在根目录中需要一个pom.xml
,然后将其配置为将子目录作为模块。看起来像这样:
<modules>
<module>folder-a</module>
<module>folder-b</module>
<module>folder-c</module>
</modules>
您可能还需要在子模块中配置父pom.xml。有关更多信息,请参见Maven Modules docs。
这取决于您是要构建所有这些子模块还是仅构建一个。如果要全部构建它们,请使用指向Procfile
或其他任何内容的java
命令向根目录添加folder-a/target/myapp.jar
。
如果只想运行一个子模块,则仍然需要Procfile
,但是您还需要通过运行以下命令将-pl
选项添加到Maven:
$ heroku config:set MAVEN_CUSTOM_OPTS="-pl folder-a"
然后,下次部署时,Heroku将运行maven,以便仅构建folder-a
中的模块。
答案 1 :(得分:0)
此错误消息表示Heroku无法自动检测到您要部署的应用程序类型:Ruby,Node,Python,PHP,Java等。它会为每种支持的语言(例如pom)寻找签名.xml文件或package.json文件)。这通常意味着一个重要文件package.json不会被检入您的git存储库中:
您应该git添加{file},git commit -am'add {file}',然后git push heroku master
更多信息:ref:https://help.heroku.com/1MC2J0GF/why-does-my-app-fail-to-detect-a-buildpack