任务:您需要通过 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 上是做不到的。


项目分析完成后观看!