Taak: U moet een uitvoerbaar JAR-bestand maken met een JavaFX-game via de grafische engine van CodeGym.

Hiervoor heb je nodig:

  1. Fork uit de repository https://github.com/CodeGymCC/project-maven
  2. Download uw versie van het project naar uw computer. Vervolgens gaan we werken met het bestand pom.xml .
  3. Afhankelijkheden toevoegen:
    • org.apache.commons:commons-lang3:3.12.0
    • org.openjfx:javafx-controls:18.0.1
    • com.codegym: desktop-game-engine:1.0 (deze afhankelijkheid wordt in een apart bericht behandeld)
    • org.junit.jupiter: junit-jupiter-engine: 5.8.2 (met scopetest)
  4. Voeg plug-ins toe voor:
    • de afhankelijkheid installeren com.codegym: desktop-game-engine:1.0 van de lib-bibliotheek naar de lokale repository (google voor hulp);
    • laat de plug-in maven-compiler-plug-in ongewijzigd;
    • een plug-in die alle afhankelijkheden verzamelt (met scope-compilatie) en deze tijdens het bouwen aan een map toevoegt;
    • de plug-in maven-jar-plugin , die een jar-bestand zal maken met de spelcode en afhankelijkheden. In deze plug-in moet u het bestand MANIFEST.MF configureren om secties te bevatten: Class-Path, Main-ClassenRsrc-Main-Class
    • Class-PathAl onze JAR-afhankelijkheden moeten worden geregistreerd in .
    • Er moet een Main-Classklasse in worden geschreven org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoaderdie het klassenpad uit JAR-bestanden kan gebruiken en ook een JavaFX-toepassing kan starten.
    • Rsrc-Main-ClassDe startklasse van het spel (com.codegym.games.racer.RacerGame) moet erin worden geregistreerd.
  5. Maak in de maven-surefire-plug-in een configuratie zodat de StrangeTest- test niet op build wordt uitgevoerd. De rest van de tests moeten worden uitgevoerd.
  6. Voeg een sectie "bronnen" toe om aan te geven dat de ingebouwde JAR-afhankelijkheden een bron zijn, zodat de maven-jar-plug- in ze in het JAR-bestand in de map lib/ plaatst
  7. Upload wijzigingen naar je GitHub-repository, stuur een link ernaartoe naar de docent.

Bruikbaar:

  1. De build moet worden uitgevoerd met de opdracht mvn clean install .
  2. Het spel uitvoeren (via Maven) met het oog op weergave kan worden gedaan met de opdracht mvn javafx:run.
  3. Sommige plug-ins moeten fase overschrijven .
  4. Het project gebruikt JDK versie 18.0.1. Het moet op uw computer worden gedownload.
  5. Bij het bouwen via Maven zullen er in het begin fouten optreden. Lees ze aandachtig en u zult uw leven vereenvoudigen.
  6. Wijzig niets in het pakket org.eclipse.jdt.internal.jarinjarloader . Het heeft een aangepaste loader-klasse (eerlijk gekopieerd van StackOverflow), waarin de lancering van de hoofdmethode is gewijzigd om de JavaFX-toepassing te starten. Alleen voor educatieve doeleinden gebruiken.
  7. Als u alle punten voltooit, ontvangt u als resultaat van de montage een fat-JAR-bestand . U kunt starten en controleren of alles correct is gedaan met het commando:
    <way to java 18> -jar <the name of the resultant jar file>
    
    //Example
    "C:\Users\leo12\.jdks\openjdk-18.0.1.1\bin\java.exe" -jar "E:\temp\project-maven-1.0.jar"
  8. Als resultaat ziet u:
  9. De build is afhankelijk van uw besturingssysteem. Dat wil zeggen, als een JAR-bestand op Windows is gebouwd, kan het op elke Windows-computer met Java18 worden uitgevoerd. En het kan niet op Mac en Linux.


Project analyse . Kijk na voltooiing!