[JAVA] Ich habe einen Docker-Container erstellt, um Maven auszuführen

Erstellen Sie ein Docker-Image, das Apache Maven mit Oracle Java ausführen kann, das im Docker Store veröffentlicht wurde

Erläuterung

Apache Maven ist ein bekanntes Tool für Projektmanagement-Tools (Build- und Konfigurationsmanagement) für Java-Projekte. Um diesen Maven verwenden zu können, müssen Sie normalerweise Java installieren, Maven installieren, den Pfad übergeben und JAVA_HOME und MAVEN_HOME festlegen. Wir haben im Voraus eine Reihe von Umgebungen wie Docker-Images vorbereitet. Auf diese Weise können Sie ein Maven-Projekt sehr viel erstellen, ohne dass Maven installiert ist.

Die hier vorbereitete Maven-Umgebung verwendet Java 8 von Oracle, das im Docker Store als Java-Laufzeit veröffentlicht wurde. Ich werde.

Unten finden Sie Informationen zur Java- und Maven-Version.

Operationsbild

Dies ist ein Operationsimage zum Erstellen eines Projekts mit Maven in einem Docker-Container in einer Umgebung, in der Maven nicht installiert ist:

Demo

Annahme

Oracle JDK 8

Einführung

Lassen Sie das Bild in Docker Hub veröffentlichen

docker pull shinyay/docker-mvn-jdk8:3.5.0

wie benutzt man

Hängen Sie das Maven-Projekt in Ihrer Host-Umgebung in einen Docker-Container ein, verschieben Sie Ihr Arbeitsverzeichnis zum Einhängepunkt und führen Sie den Befehl Maven aus.

docker run -it --rm -v [Maven-Projektpfad in Hostumgebung]: [Einhängepunkt in Containerumgebung] -w [Einhängepunkt in Containerumgebung] shinyay / docker-mvn-jdk8: 3.5.0 mvn [ MAVEN GOAL]

Docker-Option

Beispiel 1: mvn clean

docker run -it --rm -v /home/shinyay/works/mvn-projects/mvn-webapp/mytest-app:/usr/src/mvnproject -w /usr/src/mvnproject shinya/mvn:3.5.0 mvn clean

Beispiel 2: MVN-Paket

docker run -it --rm -v /home/shinyay/works/mvn-projects/mvn-webapp/mytest-app:/usr/src/mvnproject -w /usr/src/mvnproject shinya/mvn:3.5.0 mvn package

Zusammenfassung

Dies ist nützlich, wenn Sie ein virtuelles Image verwenden, das Maven nicht enthält.

Die zukünftige Verbesserung besteht darin, dass das Repository nach der Ausführung von Maven nicht zwischengespeichert wird. Wenn Sie also versuchen, es erneut auszuführen, werden die abhängigen Bibliotheken erneut abgerufen. Es wäre jedoch schön, es mit dem Maven-Repository in der Host-Umgebung zu teilen.

Recommended Posts

Ich habe einen Docker-Container erstellt, um Maven auszuführen
Führen Sie PureScript auf einem Docker-Container aus
So erhalten Sie einen Heapdump aus einem Docker-Container
Ich habe ein Docker-Image für die japanische Version von SDAPS erstellt
Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen
Erstellen Sie einen Docker-Container, um EPS in eine PGF-Quelle zu konvertieren
Ich habe eine Chat-App erstellt.
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Einführung in Linux Container / Docker (Teil 1)
Schritte zum Ausführen von Docker auf einem Mac
Ich habe eine shopify App @java erstellt
Ich habe mit Swing eine GUI erstellt
So führen Sie JavaFX unter Docker aus
Einführung in Linux Container / Docker (Teil 2)
Ich habe eine einfache Empfehlungsfunktion erstellt.
Wie erstelle ich ein Maven-Projekt?
Ich habe eine passende App erstellt (Android App)
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
Ich habe versucht, Docker und Maven / Netbean mit Jib gut zu integrieren
Ich habe ein Juwel gemacht, um den Text des Org-Modus in Qiita zu posten
Erstellt eine Methode zum Anfordern von Premium Friday (Java 8-Version)
Ich habe ein Tool erstellt, um den Unterschied zwischen CSV-Dateien auszugeben
Ich kann keine Verbindung mehr zu einer VM mit einem Docker-Container herstellen, der eine Verbindung über SSH herstellen kann
Als ich versuchte, ein Composer-Update im Docker-Container durchzuführen, wurde ich wütend auf proc_open (): fork failed
Ich möchte eine Webanwendung entwickeln!
Docker Push zur GitHub Container Registry (ghcr.io)
Ich möchte ein schönes build.gradle schreiben
[Ruby] Ich habe einen einfachen Ping-Client erstellt
Führen Sie NordVPN im Docker (Windows) Ubuntu-Container aus
Ich möchte einen Unit Test schreiben!
So erstellen Sie ein Maven-Repository für 2020
Ich habe einen Arbitrage-Transaktionsbot für virtuelle Währungen erstellt und versucht, Geld zu verdienen
Führen Sie x11-Apps in einem Docker-Container aus (unterstützt den Netzwerkzugriff vom Container aus).
Ich habe mit Ruby einen riskanten Würfel gemacht
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
Erstellen Sie in Eile ein Maven-Projekt mit dem Docker-Container von Maven
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht