Dies ist der dritte in der Maven-Serie.
Zuvor schrieb ich Wie man ein ausführbares JAR in Maven erstellt.
Mit dieser Methode können Sie das in der JAR-Datei archivierte Java-Programm mit dem Befehl java -jar <Name der auszuführenden JAR-Datei>
ausführen.
Die mit dieser Methode erstellte ausführbare JAR-Datei enthält jedoch alle im Programm verwendeten Abhängigkeiten in der JAR-Datei. Wenn Sie also versuchen, den Inhalt der Einstellungsdatei usw. nach dem Ändern der Quelldatei neu zu schreiben Sie müssen es neu erstellen.
Dann verliert beispielsweise eine Eigenschaftendatei, die Einstellungswerte ausgibt, die Sie nicht in das Programm schreiben möchten, etwa die Hälfte der von Ihnen ausgegebenen Bedeutung.
Wenn möglich, bündeln Sie die Einstellungsdatei usw. nicht mit der JAR-Datei und legen Sie die Einstellungsdatei ab Direkte Korrektur> Programm neu starten Ich möchte es beenden.
Dieses Mal werde ich Ihnen zeigen, wie Sie mit Maven eine JAR-Datei erstellen, die keine abhängigen Jars und Konfigurationsdateien enthält.
Bei der diesmal eingeführten Erstellungsmethode wird der Einstiegspunkt der JAR-Datei nicht angegeben, sodass das Java-Programm nicht mit dem obigen Befehl ausgeführt werden kann.
Ich weiß nicht, wie es geht, aber wenn jemand, der diesen Artikel gelesen hat, weiß, wie es geht, würde ich es begrüßen, wenn Sie mir beibringen könnten, wie es geht.
Es ist lange her, aber es war eine Zusammenfassung darüber, wie ich zu diesem Artikel gekommen bin und was ich schreiben werde.
Von hier aus werde ich die spezifische Methode beschreiben.
Erstellen Sie zunächst ein Projekt, das Sie zum Testen verwenden möchten.
Erstellen Sie das Maven-Projekt wie gewohnt. Wenn Sie nicht wissen, wie Sie ein Maven-Projekt erstellen, lesen Sie bitte hier.
Für dieses Projekt benötigen wir Abhängigkeiten und Ressourcen zum Kopieren, daher fügen wir sie hinzu.
Fügen Sie die abhängige JAR-Datei hinzu, um die Kopie der Abhängigkeit anzuzeigen. Die JAR-Dateien, von denen das Maven-Projekt abhängt, sind in pom.xml aufgeführt. Auf diese Weise lädt Maven die abhängigen JAR-Dateien automatisch aus dem zentralen Repository herunter.
■ Inhalt von pom.xml
<dependencies>
<dependency>
<! - Fügen Sie diesmal einen Logger als Abhängigkeit hinzu->
Fügen Sie eine Ressourcendatei hinzu, um die Kopie der Ressource zu überprüfen. Fügen Sie dieses Mal die Einstellungsdatei für den Logger (Logback) (logback.xml) hinzu, die bisher als Ressourcendatei hinzugefügt wurde. Fügen Sie die Konfigurationsdatei zum Ordner "src / main / resources" hinzu.
■ Projektbaum nach dem Hinzufügen von Ressourcen
Im Hello-World-Projekt wurde Hello World mit der Standardausgabe ausgegeben. Ändern Sie diesen Teil jedoch in eine Einstellung, die einen Logger verwendet.
package hello.main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
Hallo Welt bei Maven */ public class HelloWorld { / ** Logger * / private static Logger logger = LoggerFactory.getLogger(HelloWorld.class);
/**
Hauptverarbeitung
Zeigen Sie Hello World in der Standardausgabe an.
@param args Befehlsargument */ public static void main(String[] args) { // Standardausgabe in Logger ändern logger.info("Hello Maven World!"); } }
Die Einstellungsdatei, die die Bewegung des Loggers steuert, lautet "logback.xml". logback selbst funktioniert mit den Standardeinstellungen ohne, aber dieses Mal gibt es auch einen Kopiertest. Schreiben wir also die Einstellungsdatei genau. Es dient auch als Erinnerung daran, wie man logback.xml schreibt, was ich immer vergesse, und beschreibt die Einstellungen, die an die Konsole ausgegeben werden sollen, und die Einstellungen, die in eine Datei ausgegeben werden sollen.
■ Inhalt von logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/log%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss'Z'} - %m%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
Richten Sie zunächst eine Kopie der abhängigen JAR-Datei ein, einschließlich der in Ihrem Programm verwendeten Bibliotheken.
2.1. maven-dependency-plugin Verwenden Sie ein Plugin namens maven-dependency-plugin, um die abhängigen Dateien in ein anderes Verzeichnis als die JAR-Dateien zu kopieren. Mit diesem Plug-In können Sie abhängige JAR-Dateien beim Erstellen in ein bestimmtes Verzeichnis kopieren.
Fügen Sie für solche Einstellungen die Einstellungen zum Erstellen der JAR-Datei wie im Beispiel zu pom.xml hinzu. Hier geht es darum, die Kopie ohne die im Test verwendeten Materialien festzulegen, die Maven eigen sind. Um genau zu sein, können Sie nicht einfach das Abhängigkeits-Plug-In festlegen, sondern nur den Umfang der abhängigen Dateien auf das Testen beschränken.
■ Inhalt von pom.xml
<! - Beschränken Sie den Bereich auf test->
<! - Plugin zum Kopieren von abhängigen Gläsern->
Der Begriff Ressource hat viele Bedeutungen, aber die Ressource bezieht sich hier auf die Datei, in der die im Java-Programm verwendeten Einstellungen beschrieben werden.
Insbesondere handelt es sich um eine Datei, die im Verzeichnis "src / main / resources /" des Maven-Projekts abgelegt wird. In meiner Lieblingsumgebung füge ich häufig Einstellungsdateien für Protokollierungsbibliotheken usw. ein, wie dies bei der Projektkonstruktion der Fall ist.
Nebenbei bevorzuge ich die Umgebung "logback + slf4j".
3.1. maven-resources-plugin Verwenden Sie zum Kopieren von Ressourcen wie Konfigurationsdateien ein Plugin namens maven-resources-plugin.
Fügen wir nun die Plug-In-Einstellungen auch zu pom.xml hinzu. Hier geht es darum, der JAR-Datei beim Erstellen ressourcenfreie Einstellungen hinzuzufügen. Wenn Sie diese Einstellung nicht vornehmen, werden am Ende Ressourcen in der JAR-Datei erstellt.
■ Inhalt von pom.xml
<build>
<! - Hier werden die Einstellungen zum Ausschließen von Ressourcen zum Zeitpunkt der Erstellung beschrieben.
Bisher haben wir eingeführt, wie Dateien ohne jar-abhängige Dateien erstellt werden. Ich habe einige Zeit im Internet gesurft, bis ich an diesem Punkt angelangt war, aber es fiel mir schwer, weil es kein japanisches Web gab, das ich so nutzen konnte, wie es war. Einer der Gründe ist, dass ich Maven überhaupt nicht gut verstehe, aber ich hoffe, dass es Menschen in derselben Situation gibt, die ihnen helfen können.
Auch wenn jemand weiß, wie man es schlauer macht, würde ich es begrüßen, wenn Sie darauf hinweisen und mir das beibringen könnten.
Ich habe in diesen Tagen viel über Maven gelernt, daher denke ich, dass dies die letzte Maven-Serie für eine Weile ist. Ich habe bisher drei Artikel geschrieben, aber Maven ist ein Build-Tool, aber es ist ein Build-Tool. Es gibt viele Möglichkeiten, es zu verwenden, und es ist tiefgreifend, so dass ich es vorstellen kann, wenn ich irgendwo anders lerne.
Als Referenz werde ich die Artikel, die ich bisher geschrieben habe, als Links zusammenfassen. Wenn Sie diesen Artikel gelesen haben, verwenden Sie bitte Folgendes als Referenz.
■ [Für Super-Anfänger] Maven Super-Einführung http://qiita.com/ryota0001/items/e019ec4daaaf54684c53
■ Erstellen einer ausführbaren JAR-Datei mit Maven http://qiita.com/ryota0001/items/e019ec4daaaf54684c53
Recommended Posts