Java maven сборка, создание нескольких исполняемых jar с различными зависимостями - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь создать и запустить приложение, которое может работать как на Windows, так и на Mac.Я довольно новичок в java, поэтому изучал варианты создания работоспособного jar-файла как для Windows, так и для Mac (с разными зависимостями)

Таким образом, в основном существует один основной класс, и единственное отличие состоит в том, что одно приложение использует SWTorg.eclipse.swt.win32.win32.x86_64 зависимость, а другая - org.eclipse.swt.cocoa.macosx.x86_64 зависимость.

В настоящее время у меня есть следующий maven assambly параметр:

<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.connectingmedia.swttest.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>

                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

И мои зависимости:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.eclipse.swt</groupId>
        <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
        <version>4.3</version>
    </dependency>
</dependencies>

Теперь это прекрасно работает для создания исполняемого файла jar для Windows.И я могу изменить зависимость от версии SWT для Mac для версии jar для Mac.Но было бы неплохо создать и то и другое одновременно.Я нашел следующие вопросы для создания нескольких исполняемых jar-файлов: Создание двух исполняемых jar-файлов с использованием maven-assembly-plugin

Но они используют другой основной класс, а не разные зависимости.<descriptorRef>jar-with-dependencies</descriptorRef>, кажется, всегда включает в себя все зависимости, или есть способ выбрать, какую из них использовать?

В любом случае, главный вопрос: я иду правильным путем, чтобы создать файл maven, который создает несколько запускаемыхбанки с разными зависимостями?

...