Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen

Dies ist der erste Beitrag. Es mag schwierig sein, den Text zu lesen, aber danke.

Motivation

Ich möchte automatisch auf Heroku bereitstellen, wenn ich es auf Git übertrage. Aber GitHub wurde von Microsoft erworben ~~ Wenn Sie nicht bezahlen, können Sie Dinge sehen, die Sie nicht sehen möchten, weil es öffentlich ist. BitBucket ist privat, also scheint es zu funktionieren.

** Annahme **

** Probieren Sie es jetzt **

** Bereite dich zuerst auf Heroku vor **

Erstellen Sie ein beliebiges Projekt über die Heroku-CLI oder über den Webanwendungsverwaltungsbildschirm Notieren Sie sich den API-Schlüssel von Heroku (Sie können ihn im Bildschirm "Kontoeinstellungen" überprüfen).

** Erstellen Sie als Nächstes ein BitBucket-Repository **

Notieren Sie sich die URL mit Repository Create → Git Clone

** Java-Projekterstellung **

Klicken Sie mit der rechten Maustaste → Neu → Mit neuem Spring Starter-Projekt erstellen Der danach erstellte Projektname lautet SampleProject, und der Variablenname in jeder Datei lautet ebenfalls SampleProject. Bitte lesen Sie es als Ihren Projektnamen.

SampleProject


├─src/main/java
├─src/main/resources
│ ├─application.properties
├─mvnw
├─mvnw.cmd
└─pom.xml

OK, wenn es die obige Paketstruktur hat Erstellen und ändern Sie von hier aus BitBucket- und Heroku-spezifische Dateien

system.Eigenschaften (neu)


java.runtime.version=1.8

Procfile (neu)


web: java -jar target/SampleProject-0.0.1jar --server.port=${PORT}

pom.xml(Fix)


…
	<artifactId>SampleProject</artifactId>
	<version>0.0.1</version>
	<packaging>jar</packaging>
…

Die Verpackung in pom.xml in jar wurde korrigiert Stellen Sie sicher, dass die Artefakt-ID und der Versionsname von pom.xml mit Procfile identisch sind

application.properties(Fix)


Folgende Beschreibung wurde hinzugefügt

server.port=${PORT:5000}

bitbucket-pipelines.yml (neu)


# This is a sample build configuration for Java (Maven).
# Check our guides at https://confluence.atlassian.com/x/zd-5Mw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: maven:3.3.9

pipelines:
  default:
    - step:
        caches:
          - maven
        script: # Modify the commands below to build your repository.
          #- mvn -B verify # -B batch mode makes Maven less verbose
          - git push https://heroku:"Heroku API-Schlüssel"@git.heroku.com/"Heroku-Projektname".git HEAD

Beschreibung jeder Datei

system.properties Konfigurationsdatei erforderlich, um das Maven-Projekt nach dem Erstellen auf Heroku-Seite auszuführen Procfile Die Dateien, die zum Ausführen des Projekts auf der Heroku-Seite benötigt werden. Beschreiben Sie den Ausführungsbefehl Übrigens wird im Maven-Projekt beim Ausführen von mvn build die Build-Ergebnisdatei (in diesem Fall jar) im Zielordner direkt unter dem Projekt gespeichert. Sie haben angegeben, dies zu tun pom.xml Das Ziel von mvn build wurde in jar geändert (ich denke, der Standard war Krieg). application.properties Der Server-Port auf der Heroku-Seite scheint 5000 zu sein, daher wird er so beschrieben (wie offiziell geschrieben). bitbucket-pipelines.yml Verwenden Sie die Pipeline-Funktion von Bitbucket. Beim Verschieben in den Hauptzweig von Bitbucket wird der in yaml beschriebene Prozess automatisch ausgeführt. Hier wird Java diesmal von Maven verwaltet ① Deklarieren Sie das Maven-Projekt zu Beginn ② Zum Projektzweig von Heroku wechseln tun. Wenn es an heroku gesendet wird, werden automatisch die Projektsprache, die Einstellungsdatei usw. ermittelt und ohne Erlaubnis erstellt.

Endgültige Ordnerstruktur (Da Bitbucket und Heroku ohne diese Konfiguration nicht funktionieren, probieren Sie es aus.)

SampleProject


├─src/main/java
├─src/main/resources
│ ├─application.properties
├─bitbucket-pipelines.yml
├─mvnw
├─mvnw.cmd
├─pom.xml
├─Procfile
├─pom.xml
└─system.properties

** Zum Schluss auf Bitbucket drücken **

Wenn Sie es zu Bitbucket schieben, ① Die Bitbukcet-Pipeline wird gestartet ② Schieben Sie von Bitbukcet in das Git-Repository auf der Heroku-Seite ③ Heroku stellt automatisch fest, dass es sich um ein Maven-Projekt handelt, und führt den Maven-Build aus ④ Starten Sie das JAR mit dem Java-Befehl direkt unter dem Zielordner. Es wird im Fluss von Heroku eingesetzt. Überprüfen Sie nach dem Drücken das Protokoll des Pipeline-Bildschirms von Bitbucket und das Protokoll von Heroku, um sicherzustellen, dass verschiedene Befehle funktionieren. Wenn alles gut geht, sind Sie fertig.

Sobald Sie eine Pipeline haben, wird diese jedes Mal automatisch für Heroku bereitgestellt, wenn Sie sie an BitBucekt senden. Es ist das Ende.

Recommended Posts

Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen
[Java Edition] Geschichte der Serialisierung
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
[Apache Tomcat] Die Geschichte der Verwendung von Apache OpenWebBeans zum Aktivieren von CDI
Ausgabe des Buches "Einführung in Java"
Die Geschichte des Schreibens von Java in Emacs
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
Die Geschichte des einfachen String-Vergleichs in Java
Die Geschichte des Lernens von Java in der ersten Programmierung
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Die Geschichte des Hinzufügens der neuesten Node.js zu DockerFile
Geschichte der Testautomatisierung mit Appium [Android / Java]
Java Willkommen im Sumpf der zweidimensionalen Arrays
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
[Java] So erhalten Sie die URL der Übergangsquelle
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So erhalten Sie den Maximalwert von HashMap
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
Die Geschichte, Dr. Orchid mit LINE BOT zu machen
Die Geschichte von dto, dao-like mit Java, SQLite
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
Stellen Sie Spring Boot-Anwendungen für Heroku bereit, ohne die Heroku-CLI zu verwenden
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
[Java] Versuchen Sie, die Elemente der Json-Zeichenfolge mithilfe der Bibliothek zu bearbeiten
[Java] Um die Typinformationen der Typparameter zur Laufzeit zu kennen
So leiten Sie den letzten Tag des Monats in Java ab
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Eingabe in die Java-Konsole
[Java] Verschiedene Zusammenfassungen an die Leiter von Klassen und Mitgliedern
[Java] Versuchen Sie, das Fizz Buzz-Problem mithilfe der rekursiven Verarbeitung zu lösen
Die Geschichte, das Verhalten von String durch Passieren von Java nicht zu kennen
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Probieren Sie HelloWorld mit der Mindestkonfiguration von Heroku Java Spring-Boot aus
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
Die Geschichte eines Othello-Spiels vom Kommunikationstyp mit Scala.
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Ist die von Ihnen verwendete Version von Elasticsearch mit Java 11 kompatibel?
So ermitteln Sie die Länge einer Audiodatei mit Java
So erhöhen Sie den Wert von Map in einer Zeile in Java
[Java] Löschen Sie die Elemente von List
[java8] Um die Stream-API zu verstehen
Java-Vergleich mit der compareTo () -Methode
[Java] Geben Sie in stdin of Process ein