Новое в Java и Maven.
Я пытаюсь настроить свое приложение так, чтобы я мог сгенерировать jar через строку cmd, в которой упакованы все мои зависимости.
Из чегоЯ могу сказать, что я правильно настраиваю Pom для использования этого плагина: https://github.com/javafx-maven-plugin/javafx-maven-plugin
Вот зависимости, которые у меня есть в моем Pom:
<dependencies>
<dependency>
<groupId>se.michaelthelin.spotify</groupId>
<artifactId>spotify-web-api-java</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
</dependencies>
В моем <plugins>
блоке Iиметь следующие плагины Maven:
- javafx-maven-plugin
- maven-compiler-plugin
- maven-assembly-plugin
Вот как настроен javafx-maven-plugin
:
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<mainClass>recommendify.Main</mainClass>
</configuration>
<executions>
<execution>
<id>create-jfxjar</id>
<phase>package</phase>
<goals>
<goal>build-jar</goal>
</goals>
</execution>
</executions>
В другой теме SO, посвященной этой проблеме, говорилось о настройке maven-assembly-plugin
следующим образом (я так понимаю, что это то, что упаковывает все зависимости):
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>create-executable</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${test.pack.dir}</outputDirectory>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>recommendify.Main</mainClass>
</manifest>
</archive>
</configuration>
С помощью этой конфигурации Maven я запускаю следующее для компиляции .jar: mvn clean compile jfx:build-jar
Однако .jar, скомпилированный в мой каталог target
, совершенно пуст, кромеMETA-INF
папка, в которой находится MANIFEST.MF
.
Что именно я здесь не так делаю?Maven дает мне следующее сообщение журнала [INFO] Adding 'deploy' directory to Mojo classpath: /Users/adonis/school/recommendify/src/main/deploy
.Что такое Моджо?Я должен использовать пакет deploy
для размещения моих файлов .java?Ранее я столкнулся с проблемой, когда мой пакет fxml views
не компилировался в выходной каталог классов при использовании функции запуска приложения Intellij, и после небольшого исследования я пришел к выводу, что мой fxml должен храниться в resources/fxml
вместо моегометко названный views
.Это заставляет меня поверить, что мне нужен каталог / пакет "deploy".
Любая помощь будет очень признательна:)