Quatre choses sur lesquelles les débutants Heroku sont tombés lors du déploiement d'applications Web créées en Java avec GitHub
Déclenchement h1>
J'avais ma propre application web sur GitHub,
"Je veux le publier dans un état mobile!"
C'est la raison pour laquelle j'ai commencé à ressentir cela.
Divers googles
"On dirait que Heroku peut être utilisé."
J'ai découvert cela, alors j'ai décidé de le déployer après avoir étudié.
La source:
https://github.com/ShandyGaffLover/sample001
Prémisse h1>
・ Heroku pour la première fois
・ Java, Git, Maven sont expérimentés
・ Création d'un compte GitHub
Ce que j'ai fait h1>
Créer un compte Heroku ⇒ Intégration GitHub
J'ai pu le faire de manière relativement fluide tout en Google.
Les articles auxquels j'ai fait référence sont les suivants:
J'ai essayé Heroku, qui peut publier gratuitement des applications Web - Qiita
https://qiita.com/fkooo/items/0365b50d4534a236dcb2
Note d'utilisation Heroku (Java) -Qiita
https://qiita.com/opengl-8080/items/9dc9243c4e68cd0674f8
Trébucher h1>
① "Je ne connais pas la langue de l'application" et elle ne se compile pas h2>
Phénomène h3>
Après avoir sélectionné le référentiel à lier et la branche à déployer, lorsque le bouton "Déployer la branche" a été appuyé, "Aucune langue par défaut n'a pu être détectée pour cette application." S'affiche.
Cause h3>
Parce que Buildpack n'est pas défini.
Correspondance h3>
Cliquez sur "Ajouter un pack de construction" au bas de la page de l'onglet "Paramètres", et sélectionnez "heroku / java" pour l'ajouter.
Résultat h3>
Lorsque j'ai à nouveau appuyé sur le bouton «Deploy Branch», l'erreur de construction s'est produite comme indiqué ci-dessous.
② "pom.xml not found" est dit et il n'est pas construit h2>
Phénomène h3>
Après avoir répondu à ①, lorsque le bouton «Déployer la branche» a été de nouveau appuyé, «Impossible de trouver un fichier pom.xml! Veuillez vérifier qu'il existe et est validé dans Git.» S'affiche.
Cause h3>
Parce que pom.xml n'existe pas directement sous le référentiel.
Depuis que je créais initialement le projet sample001 sous le référentiel de formation, pom.xml était à l'emplacement training / sample001 / pom.xml.
Apparemment, vous ne pouvez pas vous déployer sur Heroku à cet endroit.
- Il y avait un exemple similaire.
Heroku: Je suis accro à l'erreur Buildpack-Qiita
https://qiita.com/arekore0/items/eae550bdbcc78eeac082
Correspondance h3>
Un nouvel exemple de référentiel001 a été créé, pom.xml a été placé directement sous celui-ci et la source a été déplacée.
Résultat h3>
Lorsque j'ai à nouveau appuyé sur le bouton «Deploy Branch», la construction a réussi comme indiqué ci-dessous. Tu l'as fait!
J'ai pensé ... pendant un moment
Lorsque j'accède à l'URL, j'obtiens une erreur d'application ...
③ Le processus Web n'est pas en cours d'exécution après le déploiement h2>
Phénomène h3>
Une fois le déploiement réussi, cliquez sur le bouton "Afficher" pour accéder à l'URL de l'application, et un écran indiquant une erreur d'application s'affichera.
Si vous vous référez au journal, il s'affichera comme suit.
2018-12-06T07:09:36.166348+00:00 heroku[router]: at=error code=H14 desc="No web processes running"
Cause h3>
L'application Web ne s'exécute pas sans la création du fichier Procfile. [^ 1]
[^ 1]: Je ne sais pas si ce japonais est techniquement correct. Quiconque connaît la relation entre Procfile et les actifs déployés apprécierait si vous pouviez signaler des erreurs.
Correspondance h3>
Reportez-vous à ce qui suit, (1) créez un fichier Procfile et (2) ajoutez webapp-runner au plugin de pom.xml.
Deploying Tomcat-based Java Web Applications with Webapp Runner | Heroku Dev Center
https://devcenter.heroku.com/articles/java-webapp-runner#deploy-your-application-to-heroku
Résultat h3>
![apperror.png](https://qiita-image-store.s3.amazonaws.com/0/322008/7147b541-4dc2-9820-d0fb-7ef3eddaf975.png)
L'erreur d'application est toujours affichée. Ouais pourquoi ...
④ "war file does not exist" s'affiche dans le journal h2>
Phénomène h3>
Après avoir répondu à (3), si le déploiement est réussi et que le bouton «Afficher» est enfoncé pour accéder à l'URL de l'application, un écran notifiant une erreur d'application s'affiche.
Si vous vous référez au journal, il s'affichera comme suit.
2018-12-06T10:51:25.163976+00:00 app[web.1]: The specified path "target/*.war" does not exist.
J'étais confus parce que je ne connaissais pas la cause au début [^ 2], mais dans la plupart des cas, la cause est souvent mauvaise.
Cause h3>
Parce que l'empaquetage de pom.xml n'a pas été décrit.
Correspondance h3>
Spécifiez "war" pour l'empaquetage dans pom.xml.
Résultat h3>
Déploiement réussi!
Résumé h1>
Les points suivants doivent être pris en compte lors de la première utilisation d'Heroku.
(1) Les paramètres de Buildpack sont requis.
(2) Pour Java, il est nécessaire de placer pom.xml directement sous le référentiel.
③Procfile est requis.
Je ne savais pas que j'avais oublié de spécifier "war" pour dans pom.xml. Je suis désolé. [^ 2]
[^ 2]: Pourquoi cela a-t-il fonctionné avec le Tomcat local?