Не удалось собрать приложение с Maven, я могу запустить код локально, но не могу развернуть на heroku - PullRequest
0 голосов
/ 24 января 2019

Это мой код в github: https://github.com/q463746583/CS4500-Assignment2 Я могу успешно запустить его на локальном компьютере, но пока я пытаюсь развернуть код на heroku, есть описание ошибки:

       [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M9/qdox-2.0-M9.jar (317 kB at 6.0 MB/s)
       [INFO] Changes detected - recompiling the module!
       [INFO] Compiling 4 source files to /tmp/build_3c4f3b86a26f6e3ae1cbe89639f79f26/target/classes
       [INFO] ------------------------------------------------------------------------
       [INFO] BUILD FAILURE
       [INFO] ------------------------------------------------------------------------
       [INFO] Total time: 13.261 s
       [INFO] Finished at: 2019-01-24T00:47:07Z
       [INFO] ------------------------------------------------------------------------
       [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project myapp: Fatal error compiling: invalid target release: 11 -> [Help 1]
       [ERROR] 
       [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
       [ERROR] Re-run Maven using the -X switch to enable full debug logging.
       [ERROR] 
       [ERROR] For more information about the errors and possible solutions, please read the following articles:
       [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
 !     ERROR: Failed to build app with Maven
       We're sorry this build is failing! If you can't find the issue in application code,
       please submit a ticket so we can help: https://help.heroku.com/
 !     Push rejected, failed to compile Java app.
 !     Push failed

1 Ответ

0 голосов
/ 24 января 2019

Я думаю, что это связано с несоответствием между вашей целевой средой исполнения Java на Heroku и вашим локально скомпилированным кодом, сгенерированным из компилятора Maven, которую ты пытаешься подтолкнуть к Героку.

Согласно документации Heroku :

В настоящее время Heroku использует OpenJDK 8 для запуска приложения по умолчанию . OpenJDK версии 9 и 7 также доступны.

Другие поддерживаемые версии по умолчанию:

  • Java 7 - 1.7.0_181
  • Java 8 - 1.8.0_191
  • Java 9 - 9.0.4
  • Java 10 - 10.0.2
  • Java 11 - 11

Таким образом, вы должны убедиться, что в вашем файле pom.xml ваш компилятор maven компилирует ваш код JAVA в соответствующий пакет JAVA, который вы нацеливаете на Heroku . Например, ниже мы нацелены на среду выполнения Java 7:

pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

Затем вам нужно создать файл system.properties в вашем проекте, если вы нацелены на среду выполнения, отличную от среды выполнения Jok DK 1.8 , которую использует Heroku по умолчанию. Вы можете сделать это, указав желаемую среду выполнения Java, например:

system.properties

java.runtime.version=11

TLDR:

  1. Убедитесь, что вы используете соответствующий JAVA JDK
  2. Убедитесь, что ваша целевая среда из компилятора Maven совпадает с целевой средой выполнения Heroku JAVA .
  3. Если вы не используете JAVA 8 по умолчанию JDK среда выполнения создайте файл system.properties в своем проекте, указав другую поддерживаемую среду выполнения JAVA , как указано в пакете сборки JAVA Heroku для JAVA документация.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...