Я хочу скомпилировать свой Java-проект с помощью maven, но он не добавил основной класс в файл манифеста.Так что я не могу запустить банку за пределами Intellij.Я добавил основной класс в свой файл pom.xml, но он не отображается в файле манифеста.
Я использую функцию сборки intellij на компьютере с Win10 и maven3 (IntelliJ IDEA 2018.3.1 / plugins / maven / lib / maven3).
Если я запускаю jar, я получаю ошибку
$java -jar myJar.jar
kein Hauptmanifestattribut, in myJar.jar
(по-немецки: без атрибута основного манифеста, в myJar.jar , я не знаю точного английского перевода для этого, но это означает: основной класс не указан )
Я пробовал несколько плагинов maven (maven-compile,maven-jar, maven-shade) и способы указать основной класс, но ни один из них не добавил его в файл манифеста.Единственный способ заставить это работать, это когда я добавил строку
Main-Class: Main
вручную.
мой файл pom (да, мой основной класс называется Main и да, он отлично работает, когда я добавил его вручную)
...
<groupId>com.myname</groupId>
<artifactId>myProject</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
файл манифеста
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: dspicuzz
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_65
Если я добавил строку вручную, он отлично работает
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: dspicuzz
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_65
Main-Class: Main
Но я не могу заставить Мэйвена сгенерировать его для меня таким образом.