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>
Main.java
package jp.demo;
public class Main {
public static void main(String[] args){
System.out.println("### START ###");
System.out.println("### END ###");
}
}
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 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>
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 ###
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>
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
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