任务:您需要通过 CodeGym 的图形引擎制作一个带有 JavaFX 游戏的可执行 JAR 文件。
为此你需要:
- 从存储库中分叉https://github.com/CodeGymCC/project-maven
- 将您的项目版本下载到您的计算机。接下来,我们将使用pom.xml文件。
- 添加依赖项:
- 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(范围测试)
- 添加插件:
- 将依赖项com.codegym: desktop-game-engine:1.0从 lib 库安装到本地存储库(谷歌寻求帮助);
- 保持maven-compiler-plugin 插件不变;
- 一个插件,它将收集所有依赖项(具有编译范围)并在构建期间将它们添加到某个目录;
- maven -jar-plugin 插件,它将制作一个包含游戏代码和依赖项的 jar 文件。在此插件中,您需要配置MANIFEST.MF文件以包含部分:
Class-Path
,Main-Class
和Rsrc-Main-Class
Class-Path
我们所有的 JAR 依赖项都应该在.Main-Class
必须编写一个类org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
,它可以使用 JAR 文件中的类路径,并且还可以启动 JavaFX 应用程序。- 必须在其中
Rsrc-Main-Class
注册游戏的起始类(com.codegym.games.racer.RacerGame) 。 - 在maven-surefire-plugin 中,进行配置,使StrangeTest测试不会在构建时运行。其余的测试应该运行。
- 添加一个“资源”部分,说明构建的 JAR 依赖项是资源,以便maven-jar-plugin将它们放入lib/文件夹中的 JAR 文件中
- 将更改上传到您的 GitHub 存储库,将指向它的链接发送给老师。
有用:
- 构建必须使用mvn clean install命令运行。
- 为了查看目的运行游戏(通过 Maven)可以使用mvn javafx:run 命令完成。
- 一些插件需要覆盖phase。
- 该项目使用 JDK 版本 18.0.1。它必须下载到您的计算机上。
- 通过Maven构建时,一开始会出现错误。仔细阅读它们,您将简化您的生活。
- 不要更改org.eclipse.jdt.internal.jarinjarloader包中的任何内容。它有一个自定义加载器类(老实说是从 StackOverflow 复制的),其中主要方法的启动更改为启动 JavaFX 应用程序。仅用于教育目的。
- 如果您完成所有要点,作为组装的结果,您将收到一个 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"
- 结果你会看到:
- 构建取决于您的操作系统。也就是说,如果一个 JAR 文件是在 Windows 上构建的,那么它可以在任何装有 Java18 的 Windows 计算机上运行。而且在 Mac 和 Linux 上是做不到的。
项目分析。完成后观看!
GO TO FULL VERSION