Как создать файл JAR для существующего проекта Maven без (без основного атрибута манифеста)? - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в Maven. Я ничего не знаю об этом. Я скачиваю форму проекта maven с открытым исходным кодом Github. Я открываю это в Eclipse. Я изменил только одну строку, чтобы изменить шаблон для даты из этого формата:

final String pattern = "%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n";

К этому

final String pattern = "%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p - %m%n";

Затем я попытался создать файл jar для проекта. POM. xml, который поставляется с загруженным проектом, использует плагин Shade Package.

<plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <version>${shade.version}</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                                <configuration>
                                    <finalName>name-of-pro-${project.version}</finalName>
                                    <transformers>
                                        <transformer
                                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                            <mainClass>name.of.the.package.and.Mainclass</mainClass>
                                        </transformer>
                                        <transformer
                                            implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                    </transformers>
                                    <filters>
                                        <!-- This is necessary to avoid a java.lang.SecurityException -->
                                        <filter>
                                            <artifact>*:*</artifact>
                                            <excludes>
                                                <exclude>META-INF/*.SF</exclude>
                                                <exclude>META-INF/*.DSA</exclude>
                                                <exclude>META-INF/*.RSA</exclude>
                                            </excludes>
                                        </filter>
                                    </filters>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

Итак, я попытался получить файл JAR из Maven с помощью этой команды:

mvn clean package

Однако, когда я запустил созданный файл jar с помощью этой команды:

java -jar app-0.2.0-SNAPSHOT.jar

Я получил ошибку (без атрибута основного манифеста).

no main manifest attribute, in app-0.2.0-SNAPSHOT.jar

Я искал файл MANIFEST.MF чтобы проверить атрибуты там, но я не могу найти облако.

Облако кто-нибудь, помогите мне, если я пропустил некоторые настройки?

1 Ответ

0 голосов
/ 31 марта 2020

Вы не можете просто запустить jar.

Либо вам нужно указать полный путь к классу в командной строке, либо вам нужно построить jar как jar-with-dependencies, как, например, описано здесь:

{ ссылка }

...