Как развернуть приложение Java Gradle на Heroku

Пожалуйста, помогите развернуть мое приложение на Heroku. Получение сообщения об ошибке от Heroku *

"Ошибка приложения. В приложении произошла ошибка, и ваша страница не может быть обработана. Повторите попытку через несколько минут. Если вы являетесь владельцем приложения, проверьте подробности в своих журналах".

Вот лог от Heroku:

2016-07-21T22:11:30.966800+00:00 heroku[slug-compiler]: Slug compilation 
started 2016-07-21T22:11:30.773385+00:00 heroku[api]: Release v8 created by 
zzheads@gmail.com 2016-07-21T22:11:56.184847+00:00 heroku[router]: at=error 
code=H14 desc="No web processes running" method=GET path="/favicon.ico" 
host=zzheads-countries.herokuapp.com request_id=a03c9276-b038-4f9f-8e6d-
5f29f14b441 fwd="5.3.141.153" dyno= connect= service= status=503 bytes=

Мой файл сборки Gradle:

group 'com.zzheads'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath  'org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE'
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
}

task stage {
    dependsOn build
}

И мой файл Proc:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/countries-1.0-SNAPSHOT.jar

2 ответа

Ваша сборка, вероятно, генерирует исполняемый файл JAR в каталоге build/libs, Попробуйте это в вашем Procfile:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/countries-1.0-SNAPSHOT.jar

Вы можете проверить это локально, запустив:

$ ./gradlew stage
$ heroku local

Я думаю, что Heroku не может найти ваш .jar потому что когда он не находит свойства версии, пакет сборки gradle просто использует свой собственный идентификатор сборки. Так что ваши .jar не найден под именем файла в вашем procfile. Вы можете установить следующее:

jar{
  baseName = 'countries-'
  version = '1.0-SNAPSHOT'
} 

поэтому Heroku подхватывает эти переменные. Обратите внимание, что если вы используете Spring Boot 2.*, плагин отключает jar задачи, и добавляет bootJar задача, на которой вы должны установить эти переменные.

При этом платформа сможет найти ваш артефакт просто отлично.

Кроме того, работает heroku logs -a <your-app-name-here> -t вы получите больше информации о состоянии вашего приложения во время отладки

Другие вопросы по тегам