[JAVA] Erstellen Sie eine Befehlszeilen-App mit maven

Erstellen Sie ein minimales Maven-Projekt

Wenn Sie ein Maven-Projekt mit den Standardeinstellungen in Eclipse (genauer gesagt STS) erstellen, sieht das POM folgendermaßen aus.

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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

Erstellen Sie eine Klasse entsprechend ...

Main.java


package jp.demo;

public class Main {
	public static void main(String[] args){
		System.out.println("### START ###");
		System.out.println("### END ###");
	}
}

Wenn du rennst ...

Wenn ich Jar nach der Installation von maven starte, werde ich wütend, wenn es kein Manifest gibt.

Befehlszeile


C:\sts\workspace\simple_maven\target>java -jar test-0.0.1-SNAPSHOT.jar
test-0.0.1-SNAPSHOT.jar hat kein Hauptmanifestattribut
Generieren Sie eine Manifestdatei

Geben Sie mainClass an

Geben Sie daher das mainClass-Tag in der Reihenfolge des Build-Tags an, wie unten gezeigt. Geben Sie im mainClass-Tag die Hauptklasse aus dem Paket an.

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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>test</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>jp.demo.Main</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Wenn ich es wieder laufen lasse ...

Nach der Installation von maven endete es normal, als ich es erneut ausführte.

Befehlszeile


C:\sts\workspace\simple_maven\target>java -jar test-0.0.1-SNAPSHOT.jar
### START ###
### END ###

Wenn Sie einen Fehler wie diesen erhalten ...

Da die Version des Compilers niedrig ist, fügen wir Folgendes hinzu.

pom.xml


	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

Wenn Sie einen solchen Fehler erhalten 2 ...

Fügen wir den Eigenschaften wie oben Folgendes hinzu. (Es scheint ein Fehler in Maven-Jar-Plugin 3.1.2 zu sein. Es kam in einem anderen Projekt heraus.)

pom.xml


	<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>

Referenz: https://bugs.eclipse.org/bugs/show_bug.cgi?id=547409

Schließlich

Jetzt das.

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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>test</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>jp.demo.Main</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Recommended Posts

Erstellen Sie eine Befehlszeilen-App mit maven
Erstellen Sie ein Maven-Projekt mit Befehlen
Erstellen Sie eine App mit Spring Boot 2
Erstellen Sie eine App mit Spring Boot
Erstellen Sie mit dem Befehl eine JAR-Datei
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
[Rails 5] Erstelle eine neue App mit Rails [Anfänger]
Maven-Projekt erstellen
Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
Ich habe versucht, eine LINE-Klon-App zu erstellen
Führen Sie eine Befehlszeilenoptionsanalyse mit der Commons CLI von Apache durch.
Erstellen Sie eine Jar-Datei mit zwei Befehlszeilen
Erstellen Sie eine Chat-App mit WebSocket (Tyrus) + libGDX + Kotlin
Erstellen Sie Restapi mit Spring Boot (bis zum Ausführen der App)
Erstellen eines Maven-Webprojekts
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Erstellen Sie eine XML-RPC-API mit Wicket
Ändern Sie Wordpress siteurl mit dem Befehl
Versuchen Sie gRPC mit Java, Maven
Externe Befehlsausführung mit Swift
Was ist ein Befehlszeilenargument?
Erstellen Sie einen Spielplatz mit Xcode 12
Einfache Bibliothekseinführung mit Maven!
Erstellen Sie mit Spring Boot einen Mikrodienst
Häufig verwendete Maven-Befehlssammlung
Ich habe mit JD-Core eine Befehlszeilenschnittstelle mit dem WinMerge Plugin erstellt
Erstellen Sie eine Memo-App mit Tomcat + JSP + Servlet + MySQL mit Eclipse
Erstellen Sie eine App-Katalogsite mit CLI für Microsoft 365 mit Docker
Erstellen Sie eine JVM für die App-Verteilung mit JDK 9-Modulen und jlink
Umgang mit E / A-Ausnahme: Zurücksetzen der Verbindung im OWASP-Befehlszeilentool zur Abhängigkeitsprüfung
Erstellen Sie eine Restaurant-Such-App mit der IBM Watson + Guru Navi-API (mit Quelle).
Befehlszeile, mit der Sie eine Verzeichnisstruktur zum Erstellen einer Laravel-Umgebung mit Docker auf einmal erstellen können
Herunterladen und Ausführen des Jar-Pakets direkt aus dem Maven-Repository mit nur der Befehlszeile