У меня есть аналогичная проблема для этого вопроса. Я пробовал все перечисленные предложения и все еще не понимаю. Моя проблема в том, что я пытаюсь создать проект maven и распространять его на другие машины, но файлы jar не заполняются правильным манифестом. Каждый раз, когда я строю и запускаю, я получаю следующую ошибку: no main manifest attribute, in myjar.jar
. Есть ли какой-то файл конфигурации, который мне нужно изменить? Я просто не знаю, что происходит. Я также попытался выполнить это исправление, но безрезультатно.
Проект Netbeans Maven Не добавляет основной класс для манифеста
Ответ 1
Вы можете добавить его в файл проекта pom, внутри тега <project>
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>your.main.class</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Ответ 2
Другой вариант - использовать maven shade plugin
. В отличие от maven jar plugin
, показанного тиграном, maven shade plugin
включает ваши зависимости в сгенерированной банке.
Пример использования плагина:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>your.main.Class</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>