开发者指南库引用与编译
项目编译
SCE-Universe_Java_Edition 项目的编译过程没有使用传统的构建工具(如 Maven 或 Gradle),而是通过一个定制化的 Shell 脚本 build.sh 进行管理。该脚本负责清理、编译 Java 源代码、复制非 Java 资源文件,并将所有编译产物和资源打包成一个可执行的 JAR 文件。
概述
项目编译旨在将 Java 源代码和相关资源转换为可运行的 Java 应用程序。对于 SCE-Universe_Java_Edition 项目,这意味着将 src 目录下的 .java 文件编译成 .class 文件,把其他资源(如图片、配置文件等)复制到输出目录,并最终生成一个 app.jar 文件。这个过程完全由 ./build.sh 脚本自动化,确保了构建的一致性和便捷性。
项目编译要求 JDK 版本不低于 17。
架构
下图展示了项目编译过程中的关键组件及其关系:
加载图表中...
架构说明:
- 输入源 (
Input Source): 包含项目的所有 Java 源代码 (.java文件) 和其他非 Java 资源文件(例如配置文件、文本文件等)。 - 构建脚本 (
build.sh): 作为整个编译过程的协调者,它定义了编译、资源复制和打包的顺序与逻辑。 - 构建工具 (
Build Tools):javac: Java 编译器,负责将.java源代码编译成 Java 字节码 (.class文件)。rsync: 用于高效地同步非 Java 资源文件到目标输出目录。jar: Java 打包工具,用于将编译后的.class文件和复制的资源文件封装成一个标准的 JAR 归档文件。
- 输出目标 (
Output Target):bin/: 临时目录,用于存放javac生成的.class文件和rsync复制的资源文件。app.jar: 最终的可执行 JAR 包,包含了运行应用程序所需的所有编译代码和资源。
核心编译流程
项目的编译过程通过执行 build.sh 脚本来完成,其详细步骤如下:
加载图表中...
流程说明:
- 清理 (
Cleaning): 脚本首先删除前一次构建生成的所有文件和目录,包括bin/目录和app.jar文件,确保一个干净的构建环境。 - 编译 (
Compiling):- 创建一个
bin/目录用于存放编译后的字节码和资源。 - 使用
find命令查找src/目录下所有的.java源文件。 - 通过
xargs将这些文件传递给javac命令进行编译。javac的参数-d bin指定输出目录为bin/,-sourcepath src指定源代码路径,-encoding UTF-8指定文件编码。
- 创建一个
- 复制资源 (
Copying resources): 使用rsync工具将src/目录中除.java文件之外的所有内容(例如配置文件、文本文件、图片等)复制到bin/目录中。 - 打包 (
Packaging): 最后,使用jar工具将bin/目录中的所有内容打包成一个名为app.jar的可执行 JAR 文件。cfe参数指定了创建文件、指定入口类和从指定目录打包。cn.oraclestar.sce.App.App被指定为 JAR 文件的入口类。
使用示例
要编译此项目,只需在项目根目录中执行 build.sh 脚本:
bash
./build.shSource: build.sh
编译成功后,将在项目根目录生成 app.jar 文件,可以使用以下命令运行:
bash
java -jar app.jarbuild.sh 脚本内容
以下是 build.sh 脚本的完整内容:
bash
1#!/bin/bash
2# --- 配置区 ---
3MAIN_CLASS="cn.oraclestar.sce.App.App"
4OUT_NAME="app.jar"
5
6echo "Step 1: Cleaning..."
7rm -rf bin $OUT_NAME
8
9echo "Step 2: Compiling..."
10mkdir -p bin
11find src -name "*.java" | xargs javac -d bin -sourcepath src -encoding UTF-8
12
13echo "Step 3: Copying resources..."
14rsync -av --exclude="*.java" src/ bin/
15
16echo "Step 4: Packaging..."
17jar cfe $OUT_NAME $MAIN_CLASS -C bin .
18
19echo "Done! Run with: java -jar $OUT_NAME"Source: build.sh
配置选项
编译过程中的主要配置项直接定义在 build.sh 脚本中:
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
MAIN_CLASS | String | cn.oraclestar.sce.App.App | 指定生成 JAR 文件的入口主类。 |
OUT_NAME | String | app.jar | 指定生成的 JAR 文件的名称。 |
javac 参数 | N/A | -d bin -sourcepath src -encoding UTF-8 | Java 编译器的参数,控制编译输出目录、源代码路径和文件编码。 |
rsync 参数 | N/A | -av --exclude="*.java" src/ bin/ | rsync 工具的参数,用于控制资源复制的行为,排除 Java 源文件。 |
jar 参数 | N/A | cfe $OUT_NAME $MAIN_CLASS -C bin . | jar 工具的参数,控制 JAR 文件的创建、主类设置和打包内容。 |
相关链接
- build.sh 脚本
- 项目 README_EN.md (提及编译方式)
- 项目 README.md (提及编译方式)