[JAVA] Créer une application en ligne de commande avec maven

Créer un projet Maven minimal

Si vous créez un projet Maven avec les valeurs par défaut dans Eclipse (STS pour être exact), le POM ressemblera à ceci.

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>

Créez une classe de manière appropriée ...

Main.java


package jp.demo;

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

Quand tu cours ...

Quand je lance Jar après l'installation de maven, je me fâche s'il n'y a pas de manifeste.

Ligne de commande


C:\sts\workspace\simple_maven\target>java -jar test-0.0.1-SNAPSHOT.jar
test-0.0.1-SNAPSHOT.jar n'a pas d'attribut manifeste principal
Générer un fichier manifeste

Spécifiez mainClass

Par conséquent, spécifiez la balise mainClass dans l'ordre à partir de la balise de construction comme indiqué ci-dessous. Dans la balise mainClass, spécifiez la classe principale du package.

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>

Quand je le relance ...

Après l'installation de maven, quand je l'ai exécuté à nouveau, il s'est terminé normalement.

Ligne de commande


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

Si vous obtenez une erreur comme celle-ci ...

Puisque la version du compilateur est basse, ajoutons ce qui suit.

pom.xml


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

Si vous obtenez une telle erreur 2 ...

Ajoutons ce qui suit aux propriétés comme ci-dessus. (Cela semble être un bogue dans maven-jar-plugin 3.1.2. Il est sorti dans un autre projet.)

pom.xml


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

référence: https://bugs.eclipse.org/bugs/show_bug.cgi?id=547409

finalement

Maintenant ça.

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

Créer une application en ligne de commande avec maven
Créez une application avec Spring Boot 2
Créez une application avec Spring Boot
Créez un fichier jar avec la commande
[Rails6] Créer une nouvelle application avec Rails [Débutant]
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
Créer un projet Maven
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Déployez des applications Web Java sur Azure avec maven
J'ai essayé de créer une application de clonage LINE
Effectuez une analyse des options de ligne de commande avec la CLI Commons d'Apache.
Créez un fichier Jar avec deux lignes de commande
Créez une application de chat avec WebSocket (Tyrus) + libGDX + Kotlin
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Créer un projet Web Maven
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Créer une API XML-RPC avec Wicket
Changer Wordpress siteurl avec la commande
Essayez gRPC avec Java, Maven
Exécution de commande externe avec swift
Qu'est-ce qu'un argument de ligne de commande?
Créez un terrain de jeu avec Xcode 12
Introduction facile à la bibliothèque avec Maven!
Créer un micro service avec Spring Boot
Collection de commandes Maven fréquemment utilisée
J'ai créé une interface de ligne de commande avec WinMerge Plugin en utilisant JD-Core
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
Créer un site de catalogue d'applications à l'aide de l'interface de ligne de commande pour Microsoft 365 avec Docker
Créer une JVM pour la distribution d'applications avec les modules JDK 9 et jlink
Traitement des exceptions d'E / S: réinitialisation de la connexion dans l'outil de ligne de commande OWASP dependency-check
Créez une application de recherche de restaurant avec l'API IBM Watson + Guru Navi (avec source)
Ligne de commande qui vous permet de créer une structure de répertoires pour créer un environnement Laravel avec Docker en une seule fois
Comment télécharger et exécuter le package Jar directement à partir du référentiel Maven avec juste la ligne de commande