JavaRush /Курси /Модуль 3. Java Professional /Проєкт на тему: Maven

Проєкт на тему: Maven

Модуль 3. Java Professional
Рівень 2 , Лекція 6
Відкрита

Завдання: зробити JAR-файл із грою на JavaFX за допомогою графічного рушія JavaRush.

Для цього потрібно:

  1. Зробити fork із репозиторію https://github.com/vasylmalik/project-maven.git.
  2. Завантажити свою версію проєкту на комп'ютер. Далі будемо працювати з файлом pom.xml.
  3. Додати залежності:
    • org.apache.commons: commons-lang3: 3.12.0
    • org.openjfx: javafx-controls: 18.0.1
    • com.javarush: desktop-game-engine:1.0 (стосовно цієї залежності буде окреме завдання)
    • org.junit.jupiter: junit-jupiter-engine: 5.8.2 (зі scope test)
  4. Додати плагіни для:
    • установлення залежності com.javarush: desktop-game-engine:1.0 з бібліотеки lib до локального репозиторію (додаткову інформацію радимо пошукати через Google);
    • плагін maven-compiler-plugin залишити без змін;
    • плагін, який збере всі залежності (зі scope compile) та розмістить в якусь директорію при складанні;
    • плагін maven-jar-plugin, який зробить jar файл, що містить код гри та залежності. У цьому плагіні необхідно налаштувати файл MANIFEST.MF, щоб він містив секції: Class-Path, Main-Class і Rsrc-Main-Class
    • У Class-Path мають бути прописані всі наші JAR-залежності.
    • У Main-Class має бути прописаний клас org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader, який вміє використовувати classpath із JAR-файлів, а також вміє стартувати програму на JavaFX.
    • У Rsrc-Main-Class має бути прописаний стартовий клас гри (com.javarush.games.racer.RacerGame).
  5. У плагіні maven-surefire-plugin створити конфігурацію, щоб тест StrangeTest не запускався при складанні. Інші тести повинні виконуватися.
  6. Додати секцію “resources”, у якій вказати, що зібрані JAR-залежності – це ресурс, щоб плагін maven-jar-plugin склав їх усередину JAR-файлу в папці lib/.
  7. Залити зміни до свого GitHub-репозиторію, надіслати посилання на нього викладачеві.

Корисне:

  1. Білд потрібно виконувати командою mvn clean install.
  2. Запуск гри (через Maven) для перегляду можна виконати командою mvn javafx: run.
  3. Деяким плагінам потрібно перевизначити phase.
  4. У проєкті використовується версія JDK 18.0.1. Вона має бути завантажена в тебе на комп'ютері.
  5. У білді через Maven спершу будуть помилки. Читай їх уважно, і ти спростиш собі життя.
  6. У пакеті org.eclipse.jdt.internal.jarinjarloader нічого не змінюй. У ньому кастомний клас-лоадер (чесно скопійований зі StackOverflow), в якому запуск методу main замінено на запуск JavaFX програми. Використовуй лише для навчальних цілей.
  7. Якщо виконати всі пункти, в результаті складання проєкту ти отримаєш fat-JAR-файл. Запустити та перевірити, що все зроблено правильно, можна командою:
    
    <шлях до java 18> -jar <ім'я результуючого jar файла>
    
    //Приклад
    "C:\Users\leo12\.jdks\openjdk-18.0.1.1\bin\java.exe" -jar "E:\temp\project-maven-1.0.jar"
    
  8. В результаті ти побачиш:
  9. Білд залежить від твоєї операційної системи. Тобто якщо JAR-файл зібрано на Windows, його можна виконати на будь-якому комп'ютері з Windows та Java 18 і не можна виконати на Mac та Linux.


Розбір проєкту. Дивись відео після виконання!

Коментарі (6)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Юрій Рівень 108
5 вересня 2024
Дякую! Одне питання: чому я не бачу структуру jar-файлу в Idea? Підкажіть хто знає.
Єлизавета Рівень 51
11 вересня 2024
Зайдіть в Project Structure та додайте відображення в Intelij Idea
Юрій Рівень 108
13 вересня 2024
Дякую 🙂
Віталій Шляхетко Рівень 111 Expert
27 жовтня 2023
Дякую! Все розклав по поличках - все вдалося)
Павло Лєбєдєв Рівень 111 Expert
12 жовтня 2023
2-3 хвилина про вбудований і зовнішній мейвен підказка від IDEA:
Денис Сухоіван Рівень 62 Expert
30 серпня 2023
Спасибо за проект, хороший способ потренироваться практически.