Выполнение команды bash в Intellij не работает - PullRequest
0 голосов
/ 02 августа 2020

У меня есть следующее. js класс, расположенный в моем проекте в «myproject / frontend / scripts»:

#!/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. Выполнение этого сценария из generateApiClientCommand () в моем bash работает без проблем, но когда класс this. js выполняется во время компиляции maven, я получаю следующее исключение:

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"

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 02 августа 2020

Если вы находитесь в папке 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();
...