Compare commits

..

1 Commits

Author SHA1 Message Date
q
5271ceff4a update app-dev.yml 2026-01-12 09:52:21 +08:00
4 changed files with 26 additions and 76 deletions

View File

@@ -318,51 +318,13 @@ json返回数据格式示例:
## 开发和打包 ## 开发和打包
### 环境要求
- JDK 17+
- Maven 3.x
- Python 3.x可选仅当需要 Playground 代码智能提示功能时)
### 本地构建步骤
#### 1. Maven 打包
```shell ```shell
# 清理并打包(跳过测试) # 环境要求: Jdk17 + maven;
mvn clean package -DskipTests mvn clean
mvn package -DskipTests
# 如果遇到代理问题,可以禁用代理
mvn clean package -DskipTests -Dhttp.proxyHost= -Dhttps.proxyHost=
``` ```
打包好的文件位于 web-service/target/netdisk-fast-download-bin.zip
> **说明:**
> - Maven 构建时会自动安装 **requests** 等核心 Python 包(由 graalpy-maven-plugin 处理)
> - 打包好的文件位于 `web-service/target/netdisk-fast-download-bin.zip`
#### 2. (可选)安装 Python LSP 服务器
如果需要使用 **Playground 代码智能提示功能**,需要额外安装 python-lsp-server
```shell
# 进入 parser 目录
cd parser
# 运行 pip 包安装脚本
chmod +x setup-graalpy-packages.sh
./setup-graalpy-packages.sh
# 返回项目根目录
cd ..
```
该脚本会将以下包安装到 `parser/src/main/resources/graalpy-packages/`
- **python-lsp-server** 及其依赖jedi, python-lsp-jsonrpc, pluggy- Python LSP 服务器(代码智能提示)
- **pylsp 可选功能**pyflakes, pycodestyle, autopep8, rope, yapf- 代码检查和格式化
> **注意:**
> - 这些包需要用系统 pip 安装,因为 python-lsp-server 依赖 ujson需编译 C 扩展)
> - 安装后的包会被打包进 jar 文件,不会被 `mvn clean` 清理
> - 如果不需要 Playground 的代码智能提示功能,可以跳过此步骤
## 🚀 快速部署 ## 🚀 快速部署

View File

@@ -22,18 +22,18 @@ public class SchemaMigrationTest {
private Vertx vertx; private Vertx vertx;
private JDBCPool pool; private JDBCPool pool;
//
@Before // @Before
public void setUp() { // public void setUp() {
vertx = Vertx.vertx(); // vertx = Vertx.vertx();
//
// 创建 H2 内存数据库连接池 // // 创建 H2 内存数据库连接池
pool = JDBCPool.pool(vertx, // pool = JDBCPool.pool(vertx,
"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", // "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1",
"sa", // "sa",
"" // ""
); // );
} // }
@After @After
public void tearDown() { public void tearDown() {

View File

@@ -152,28 +152,16 @@
<build> <build>
<plugins> <plugins>
<!-- GraalPy Maven Plugin - 创建 Python Home 和 venv自动安装 pip --> <!-- GraalPy Maven Plugin - 创建 Python Home,不使用 pip 安装 -->
<!-- <!-- pip 包手动安装到 src/main/resources/graalpy-packages/,可打包进 jar -->
注意: python-lsp-server 依赖 ujson需编译 C 扩展GraalPy pip 无法安装。 <!-- 安装方法: ./setup-graalpy-packages.sh -->
如需 python-lsp-server 功能,请运行 setup-graalpy-packages.sh 使用系统 pip 安装。
此处只配置 requests 及其纯 Python 依赖Maven 构建时会自动安装到
target/classes/org.graalvm.python.vfs/venv/lib/python3.11/site-packages/
-->
<plugin> <plugin>
<groupId>org.graalvm.python</groupId> <groupId>org.graalvm.python</groupId>
<artifactId>graalpy-maven-plugin</artifactId> <artifactId>graalpy-maven-plugin</artifactId>
<version>${graalpy.version}</version> <version>${graalpy.version}</version>
<configuration> <configuration>
<!-- pip 包列表 - 仅纯 Python 包 --> <!-- 不声明 packages避免代理问题 -->
<packages> <!-- pip 包从 resources/graalpy-packages 加载 -->
<!-- requests 及其依赖 - HTTP 客户端 (解析器核心功能必需) -->
<package>requests</package>
<package>urllib3</package>
<package>charset_normalizer</package>
<package>idna</package>
<package>certifi</package>
</packages>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@@ -448,13 +448,13 @@ public class PyContextPool {
* 配置 Python 路径,确保能够加载 pip 包 * 配置 Python 路径,确保能够加载 pip 包
* 使用路径缓存机制,避免重复检测文件系统 * 使用路径缓存机制,避免重复检测文件系统
* *
* pip 包安装来源: * pip 包安装在 src/main/resources/graalpy-packages/ 中,会打包进 jar。
* 1. Maven 构建时 graalpy-maven-plugin 自动安装 requests 等核心包到 * 运行时从 classpath 或文件系统加载。
* target/classes/org.graalvm.python.vfs/venv/lib/python3.11/site-packages/
* 2. 可选:运行 parser/setup-graalpy-packages.sh 安装 python-lsp-serverPlayground 代码提示)
* *
* 注意GraalPy 的 NativeModules 限制 - 只有进程中的第一个 Context 可以使用原生模块。 * 注意GraalPy 的 NativeModules 限制 - 只有进程中的第一个 Context 可以使用原生模块。
* 后续 Context 会回退到 LLVM 模式,这可能导致某些依赖原生模块的库无法正常工作。 * 后续 Context 会回退到 LLVM 模式,这可能导致某些依赖原生模块的库无法正常工作。
*
* 安装方法:运行 parser/setup-graalpy-packages.sh
*/ */
private void setupPythonPath(Context context) { private void setupPythonPath(Context context) {
try { try {
@@ -541,7 +541,7 @@ public class PyContextPool {
} else { } else {
String error = bindings.getMember("_error_msg").asString(); String error = bindings.getMember("_error_msg").asString();
log.warn("Python 环境配置: requests 不可用 ({}), sys.path长度: {}. " + log.warn("Python 环境配置: requests 不可用 ({}), sys.path长度: {}. " +
"检查 Maven 构建是否正常完成 (graalpy-maven-plugin)", error, pathLength); "请运行: ./setup-graalpy-packages.sh", error, pathLength);
} }
} catch (Exception e) { } catch (Exception e) {