java - 在 Intellij 中执行 bash 命令不起作用
问题描述
我在“myproject/frontend/scripts”下的项目中有以下 .js 类:
#!/usr/bin/env node
'use strict';
const execSync = require('child_process').execSync;
function generateApiClientCommand() {
return `java -jar ../../config/api/openapi-generator-cli-4.3.1.jar generate
-i ../../config/api/api.yaml
--generator-name typescript-angular
--type-mappings Date=string
-c ../../config/api/config.json
-o ../src/app/shared/data-access/api`;
}
function generateApiClient() {
execSync(generateApiClientCommand(), { stdio: 'inherit'});
}
generateApiClient();
用于创建开放 api 前端类。在我的 bash 中从 generateApiClientCommand() 执行该脚本没有任何问题,但是当在 maven 编译期间执行这个 .js 类时,我得到以下异常:
Error: Unable to access jarfile ../../config/api/openapi-generator-cli-4.3.1.jar
child_process.js:669
throw err;
^
Error: Command failed: java -jar ../../config/api/openapi-generator-cli-4.3.1.jar generate
-i ../../config/api/api.yaml
--generator-name typescript-angular
--type-mappings Date=string
-c ../../config/api/config.json
-o ../src/app/shared/data-access/api
该 .jar 位于此处:“myproject/config/api”
谢谢你的帮助!
解决方案
如果您在 myproject 文件夹中并运行此脚本,那么您应该将 ../../ 替换为 ./ 类似这样的东西:
#!/usr/bin/env node
'use strict';
const execSync = require('child_process').execSync;
function generateApiClientCommand() {
return `java -jar ./config/api/openapi-generator-cli-4.3.1.jar generate
-i ./config/api/api.yaml
--generator-name typescript-angular
--type-mappings Date=string
-c ./config/api/config.json
-o ./frontend/src/app/shared/data-access/api`;
}
function generateApiClient() {
execSync(generateApiClientCommand(), { stdio: 'inherit'});
}
generateApiClient();
推荐阅读
- c# - 对数据库的更改已成功提交,但在更新对象上下文 EF6 时出错
- typedoc - 来自 TypeDoc 文档的源代码链接
- mysql - 如何检查值是否存在于其中一列中以及 MySQL 中的哪一列中?
- swift - 带有 UITableView ui 故障的 UISearchController
- php - 通过php将帖子数据保存到文件中
- reactjs - 在 Gatsby 的 JSX 组件之外进行 graphql 查询
- python-3.x - 屏幕底部的内容...使用 Kivy 添加 ToolBar 后
- java - 如何将此 reload() 方法用于 onLongClick 方法?
- angular - 如何防止用户多次提交表单?在角度
- html - 更改网页链接预览