任務:您需要通過 CodeGym 的圖形引擎製作一個帶有 JavaFX 遊戲的可執行 JAR 文件。

為此你需要:

  1. 從存儲庫中分叉https://github.com/CodeGymCC/project-maven
  2. 將您的項目版本下載到您的計算機。接下來,我們將使用pom.xml文件。
  3. 添加依賴項:
    • org.apache.commons:commons-lang3:3.12.0
    • org.openjfx:javafx-controls:18.0.1
    • com.codegym: desktop-game-engine:1.0(此依賴項將在單獨的帖子中介紹)
    • org.junit.jupiter:junit-jupiter-engine:5.8.2(範圍測試)
  4. 添加插件:
    • 將依賴項com.codegym: desktop-game-engine:1.0從 lib 庫安裝到本地存儲庫(谷歌尋求幫助);
    • 保持maven-compiler-plugin 插件不變;
    • 一個插件,它將收集所有依賴項(具有編譯範圍)並在構建期間將它們添加到某個目錄;
    • maven -jar-plugin 插件,它將製作一個包含遊戲代碼和依賴項的 jar 文件。在此插件中,您需要配置MANIFEST.MF文件以包含部分:Class-Path,Main-ClassRsrc-Main-Class
    • Class-Path我們所有的 JAR 依賴項都應該在.
    • Main-Class必須編寫一個類org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader,它可以使用 JAR 文件中的類路徑,並且還可以啟動 JavaFX 應用程序。
    • 必須在其中Rsrc-Main-Class註冊遊戲的起始類(com.codegym.games.racer.RacerGame) 。
  5. maven-surefire-plugin 中,進行配置,使StrangeTest測試不會在構建時運行。其餘的測試應該運行。
  6. 添加一個“資源”部分,說明構建的 JAR 依賴項是資源,以便maven-jar-plugin將它們放入lib/文件夾中的 JAR 文件中
  7. 將更改上傳到您的 GitHub 存儲庫,將指向它的鏈接發送給老師。

有用:

  1. 構建必須使用mvn clean install命令運行。
  2. 為了查看目的運行遊戲(通過 Maven)可以使用mvn javafx:ru​​n 命令完成。
  3. 一些插件需要覆蓋phase
  4. 該項目使用 JDK 版本 18.0.1。它必須下載到您的計算機上。
  5. 通過Maven構建時,一開始會出現錯誤。仔細閱讀它們,您將簡化您的生活。
  6. 不要更改org.eclipse.jdt.internal.jarinjarloader包中的任何內容。它有一個自定義加載器類(老實說是從 StackOverflow 複製的),其中主要方法的啟動更改為啟動 JavaFX 應用程序。僅用於教育目的。
  7. 如果您完成所有要點,作為組裝的結果,您將收到一個 fat-JAR 文件。您可以使用以下命令啟動並檢查一切是否正確完成:
    <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. 結果你會看到:
  9. 構建取決於您的操作系統。也就是說,如果一個 JAR 文件是在 Windows 上構建的,那麼它可以在任何裝有 Java18 的 Windows 計算機上運行。而且在 Mac 和 Linux 上是做不到的。


項目分析完成後觀看!