IntelliJ: Maven: сборка артефакта в Jar, но не может выполнить jar

Я создал проект со стандартной структурой каталогов mavens:

Приложение: -> src -> main -> java -> com -> company -> appname -> // Здесь классы

У меня также есть каталог META-INF в каталоге java с файлом MANIFEST.MF:

 Manifest-Version: 1.0
 Main-Class: com.company.appname.MyMain

Мой maven pom.xml выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<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>de.dsds.cryptoapp</groupId>
<artifactId>Crytpo</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>com.jgoodies</groupId>
        <artifactId>jgoodies-forms</artifactId>
        <version>1.9.0</version>
    </dependency>
</dependencies>

As you can see i import the JGoodiesLibrary as dependency for the project.

Пока все нормально.

Теперь я создаю артефакт в IntelliJ через Maven с помощью clean -> compile -> package -> install.

Баночка создана, но моя библиотека отсутствует. Кроме того, когда я запускаю банку через cmd Windows с помощью «java -jar myapp.jar», он говорит, что мой атрибут mainmanifest отсутствует, даже если он есть!


person DJ MERKEL    schedule 06.05.2016    source источник


Ответы (2)


Плагин Jar может сгенерировать для вас манифест, я бы предложил использовать его следующим образом: https://maven.apache.org/shared/maven-archiver/examples/classpath.html#Make_The_Jar_Executable

Думаю, вам также нужно добавить путь к классам в файл манифеста: https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

person Kiryl    schedule 06.05.2016
comment
Спасибо, может это причина, я попробую - person DJ MERKEL; 06.05.2016

Вы проверили, что библиотеки, которые не включены, добавлены в пакет проекта? вы можете перейти в раздел «Структура проекта» (Alt Ctrl Shift S), «Артефакты в макете вывода», добавить нужные библиотеки в окончательный пакет.

person Nat    schedule 06.05.2016