Il semble y avoir une grande variété de façons de publier des applications Java sur Heroku, mais c'est un mémo lorsque l'environnement de production est Heroku lors du développement local à l'aide de Tomcat en orthodoxe.
・ Pleiades All in One Eclipse Release 2018-09 (Compatible avec Eclipse SimRel 2018-09) ・ Heroku -Vérifiez jusqu'à ce que "Hello World on Heroku !!" (toujours local) s'affiche dans le projet Web dynamique dans Eclipse.
Cette procédure vient en premier car je voulais d'abord sécuriser le nom de l'application, mais elle est également possible après la conversion au projet Maven que je fais plus tard. Cette fois, je l'ai créé avec le nom devtest-heroku comme suit. Ensuite, allez dans l'onglet Paramètres Spécifiez le pack de construction. Cette fois, c'est Java. Ajoutée.
Cependant, ce n'est pas une conversion, mais ici nous prendrons la méthode de nouvelle création ⇒ copie. Commencez par créer un nouveau projet Maven. Je l'ai nommé devtest-heroku. Sélectionnez "maven-archetype-webapp" comme type d'architecture. Différents paramètres sont comme ça. Après l'avoir créé, nous apporterons quelques modifications.
Il indique que le dossier de projet / src / main / java et le dossier de projet / src / test / java n'existent pas, alors créez-les physiquement. Pour Windows, vous pouvez utiliser l'Explorateur.
Lorsque vous créez un projet Maven, la valeur par défaut est comme Java5, alors sélectionnez Java8.
Cette étape n'est peut-être pas nécessaire, mais j'utilise Tomcat 8 dans mon environnement, j'ai donc ajouté ce runtime.
Il s'agit également de Java 5, alors changez-le en Java 8.
Après avoir créé le package: dev.local, copiez le fichier comme indiqué dans l'image.
Au stade de la création du projet Maven, je pense que les fichiers avec le contenu suivant ont été créés,
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dev.local</groupId>
<artifactId>devtest-heroku</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>devtest-heroku Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>devtest-heroku</finalName>
</build>
</project>
Comme ci-dessous -Ajout de la dépendance de servlet aux dépendances -Ajout de plugins en cours de construction (ajout de webapp-runner.jar de Tomcat) Fait.
pom.xml (après modification)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dev.local</groupId>
<artifactId>devtest-heroku</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>devtest-heroku Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<finalName>devtest-heroku</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals><goal>copy</goal></goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>9.0.11.0</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Il semble que ce soit le contenu qui est exécuté lorsque la Webapp est lancée côté Heroku, et le contenu est une commande Java. C'est OK s'il est créé avant de déployer Heroku. Créez directement sous le projet.
Procfile
web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war
Cela devient le paramètre de construction. Faites un clic droit sur pom.xml ⇒ Exécuter ⇒ Sélectionnez Maven Build et l'écran suivant apparaîtra. Réglez comme indiqué dans la ligne rouge et le cadre rouge. Si vous essayez de l'exécuter et que "BUILD SUCCESS" s'affiche, il est terminé une fois.
Lorsque la construction est terminée, le fichier war est créé, je vais donc essayer de le mettre sur le Tomcat local. Lorsque je l'ai appelé à partir du navigateur, il était affiché en toute sécurité.
À partir de là, suivez les étapes de l'onglet de déploiement de la console d'administration Heroku. Lorsque le maître git push heroku est terminé, essayez d'appuyer sur la commande heroku ps, Vérifiez l'état de Webapp. Accédez-y avec un navigateur, et si ce qui suit est affiché, il est terminé.
Merci d'avoir évoqué la mauvaise procédure jusqu'à la fin. Il peut être converti directement sans créer de nouveau projet Maven, il peut donc être plus efficace de le faire là-bas. Si les différentes versions changent, le mouvement changera à nouveau, donc je pense que c'est juste la procédure pour le moment. Ce serait bien d'avoir un plug-in Eclipse Heroku.
Recommended Posts